raw pointer 경계

스마트 포인터 소유권 함수

스마트 포인터에서 원시 포인터를 만나는 순간에는 “누가 delete하는가”를 다시 확인해야 합니다.

관찰

주소만 빌리기

ptr.get()

C API 호출처럼 잠깐 주소가 필요할 때 사용합니다. 반환값을 `delete`하면 안 됩니다.

교체

현재 객체 해제

ptr.reset(new T)

기존 소유 객체를 즉시 정리하고 새 객체를 관리하거나 `nullptr` 상태로 만듭니다.

양도

자동 해제 끊기

raw = ptr.release()

`unique_ptr`가 소유권을 포기합니다. 반환된 원시 포인터는 반드시 새 책임자가 필요합니다.

before

스마트 포인터 소유

스코프 종료 시 RAII로 자동 정리됩니다.

get

소유권 유지

원시 포인터는 관찰자이고 수명은 여전히 스마트 포인터가 관리합니다.

reset

즉시 정리

현재 객체 소멸 후 새 대상 또는 빈 상태로 바뀝니다.

release

수동 책임 발생

자동 삭제가 중단되므로 adopt 또는 delete 경로가 필요합니다.

원칙: `release()`는 C API가 소유권을 실제로 가져가는 경계처럼 특별한 경우에만 쓰고, 일반적인 주소 전달은 `get()`으로 충분한지 먼저 확인합니다.