= 연산자를 사용하여 새 포인터를 할당하면 이전 포인터가 std :: shared_ptr에서 자동으로 삭제 (또는 역 참조)됩니까? 예를 들어std :: shared_ptr에서 = 연산자를 사용할 때 이전 포인터가 삭제 되었습니까?
:
std::shared_ptr<Type> sp1 (ptr1, std::ptr_fun(destroy));
std::shared_ptr<Type> sp2 (ptr2);
sp1 = sp2; // now, will ptr1 be dereferenced and/or destroyed?
// and will the destroy() function get called?
을 공유합니다. – GManNickG
왜 직접 해보지 않으시겠습니까? – Zaffy
Imo, 스마트 포인터 구현이 간단한 할당을 제대로 처리하지 못하면 ... 아주 스마트 포인터가 아닙니다. –