태그: unique_ptr
6편
-
C++ unique_ptr vs shared_ptr: 소유권 모델과 비용 차이, 무엇을 기본으로 쓸까
unique_ptr과 shared_ptr의 소유권 모델, 메모리 크기와 할당·복사 비용 차이를 벤치마크로 비교합니다. 기본은 unique_ptr로 두고 여러 소유자가 꼭 필요할 때만 shared_ptr을 쓰는 이유와, 순환 참조를 weak_ptr로 끊는 방법을 설명합니다.
-
C++ RAII와 스마트 포인터: unique_ptr·shared_ptr·weak_ptr 소유권 차이와 순환 참조
자원 해제를 소멸자에 맡기는 RAII 원칙에서 출발해 unique_ptr, shared_ptr, weak_ptr의 소유권 차이를 팩토리와 캐시 예제로 비교하고, 순환 참조, this로 shared_ptr을 만드는 실수, 배열과 커스텀 삭제자 사용법을 설명합니다.
-
C++14 초기화 캡처: move 캡처와 unique_ptr을 람다에 넘기는 패턴
C++14부터 람다의 캡처 목록에 이름 = 표현식 형태를 쓸 수 있습니다. 이를 초기화 캡처(init-capture)라고 부릅니다. 클로저 객체 안에 지정한 이름의 멤버를 만들고, 오른쪽 표현식의 결과로 초기화합니다.
-
스마트 포인터 입문: unique_ptr와 shared_ptr 선택 기준, make_unique·make_shared
C++ 스마트 포인터 기초. unique_ptr와 shared_ptr로 메모리를 자동 관리하는 방법, make_unique·make_shared, 자주 나는 에러와 선택 기준, 성능 비교를 예제로 다룹니다.
-
unique_ptr 고급 활용: 커스텀 삭제자, 배열, Pimpl, C API 핸들 감싸기
C++ unique_ptr 고급 활용. 커스텀 삭제자와 EBO로 오버헤드 없애기, unique_ptr<T[]> 배열, Pimpl 패턴과 ABI 안정성, 팩토리와 이동 의미론, malloc/free·FILE*·HANDLE 같은 C API 연동을 다룹니다.
-
C++ 스마트 포인터 | 3일 동안 찾지 못한 순환 참조 버그 해결법
Valgrind는 누수가 없다는데 메모리가 계속 늘던 shared_ptr 순환 참조 버그를 출발점으로, unique_ptr의 소유권 이전과 커스텀 삭제자, shared_ptr의 참조 카운팅 구조와 비용, weak_ptr로 순환을 끊는 법과 상황별 선택 기준을 다룹니다.