태그: weak_ptr
7편
-
enable_shared_from_this: this를 shared_ptr로 넘기는 법과 bad_weak_ptr 함정
C++ enable_shared_from_this 정리. shared_from_this()로 this를 안전하게 공유하는 방법, 생성자에서 호출할 때 나는 bad_weak_ptr 예외, weak_from_this()(C++17), 비동기 콜백 활용을 다룹니다.
-
C++ shared_ptr 순환 참조 누수: weak_ptr로 끊는 기준과 디버깅 방법
두 객체가 서로를 shared_ptr로 가리키면 참조 카운트가 0이 되지 않아 소멸자가 불리지 않습니다. 부모-자식 트리, 캐시, 옵저버에서 한쪽을 weak_ptr로 바꾸는 기준과 use_count(), Valgrind, AddressSanitizer로 누수를 확인하는 법을 다룹니다.
-
C++ unique_ptr vs shared_ptr: 소유권 모델과 비용 차이, 무엇을 기본으로 쓸까
unique_ptr과 shared_ptr의 소유권 모델, 메모리 크기와 할당·복사 비용 차이를 벤치마크로 비교합니다. 기본은 unique_ptr로 두고 여러 소유자가 꼭 필요할 때만 shared_ptr을 쓰는 이유와, 순환 참조를 weak_ptr로 끊는 방법을 설명합니다.
-
C++ weak_ptr: shared_ptr 순환 참조 끊기와 lock()·expired() 올바른 사용법
shared_ptr끼리 서로를 가리키면 참조 카운트가 0이 되지 않아 메모리가 새는 문제를 weak_ptr로 끊는 방법을 설명합니다. lock()과 expired()의 올바른 사용 순서, 캐시·옵저버·부모-자식 관계 예제, 만료된 항목 정리 패턴을 다룹니다.
-
C++ shared_ptr 순환 참조와 weak_ptr: 부모-자식·옵저버·그래프·캐시에서 끊는 법
shared_ptr끼리 서로를 가리켜 참조 카운트가 0이 되지 않는 순환 참조를 캐릭터-길드, 부모-자식 트리, 옵저버, 그래프, 리소스 캐시 예제로 재현하고 weak_ptr로 끊는 방법을 보여줍니다. lock()과 expired()의 올바른 사용, enable_shared_from_this 실수, 누수 진단 방법도 다룹니다.
-
shared_ptr 심화: enable_shared_from_this와 aliasing 생성자 활용
this를 shared_ptr로 감싸다 이중 해제로 크래시한 적 있나요? enable_shared_from_this, aliasing 생성자, shared_ptr 스레드 안전성, 멤버 포인터 수명 관리까지. 실전 문제 시나리오와 프로덕션 패턴.
-
C++ 스마트 포인터 | 3일 동안 찾지 못한 순환 참조 버그 해결법
Valgrind는 누수가 없다는데 메모리가 계속 늘던 shared_ptr 순환 참조 버그를 출발점으로, unique_ptr의 소유권 이전과 커스텀 삭제자, shared_ptr의 참조 카운팅 구조와 비용, weak_ptr로 순환을 끊는 법과 상황별 선택 기준을 다룹니다.