소유권 선택
smart ptr
unique_ptr하나의 소유자만 있고 이동으로 소유권을 넘깁니다.
shared_ptr여러 소유자가 참조 카운트로 생존을 공유합니다.
weak_ptr소유하지 않고 shared_ptr 순환을 끊는 관찰자 역할입니다.
scope exit마지막 소유자가 사라지면 자원이 해제됩니다.
단독 소유→공유 소유→비소유 참조→자동 해제
smart pointer 소유권
ownership
기본 선택가능하면 unique_ptr을 먼저 고려합니다.
공유 비용shared_ptr은 카운트 관리 비용과 순환 위험이 있습니다.
raw pointer소유권을 넘기지 않는 인자나 일시 관찰에는 raw pointer나
reference로 의도를 드러냅니다.
make 함수make_unique, make_shared는 객체 생성과 소유권 획득을 한
표현식에 묶어 예외 중 누수를 피합니다.