태그: smart-pointer
3편
-
C++ weak_ptr: shared_ptr 순환 참조 끊기와 lock()·expired() 올바른 사용법
shared_ptr끼리 서로를 가리키면 참조 카운트가 0이 되지 않아 메모리가 새는 문제를 weak_ptr로 끊는 방법을 설명합니다. lock()과 expired()의 올바른 사용 순서, 캐시·옵저버·부모-자식 관계 예제, 만료된 항목 정리 패턴을 다룹니다.
-
C++ make_unique·make_shared: new보다 나은 이유와 make 함수를 쓰면 안 되는 경우
make_unique와 make_shared가 new보다 예외에 안전한 이유, make_shared가 객체와 제어 블록을 한 번에 할당해서 얻는 이점과 weak_ptr이 남아 있을 때 메모리가 늦게 해제되는 단점, 커스텀 삭제자나 private 생성자처럼 make 함수를 쓸 수 없는 경우를 설명합니다.
-
C++ 커스텀 삭제자: unique_ptr·shared_ptr로 FILE*·소켓·C 자원 관리하기
unique_ptr과 shared_ptr에 커스텀 삭제자를 붙여 FILE*, 소켓, C 라이브러리 자원을 RAII로 관리하는 방법을 설명하고, 함수 포인터·람다·함수 객체 삭제자의 차이와 배열 삭제자, nullptr 처리 문제를 다룹니다.