나는 많은 boost::shared_ptr<MyClass>
개체를 가지고 있으며 어떤 점에서는 의도적으로 일부 메모리를 해제하기 위해 일부는 delete
에 있습니다. (나는 그 시점에서 더 이상 객체가 필요 없다는 것을 안다.) 어떻게해야합니까?boost :: shared_ptr을 고의로 삭제하는 방법?
delete()
을 get()
의 원시 포인터와 함께 호출 할 수는 없을 것입니다.
나는 함수 boost::shared_ptr
에서 get_deleter(shared_ptr<T> const & p)
본 적이 있지만 나는 그것을 사용하는 방법을 잘 모르겠어요, 또한 그것이 바로 옆에 실험을 말한다. (내가 부스트 1.38 있다고 생각합니다.)
그냥 새 변수 boost::shared_ptr
변수에 할당할까요? 그러면 이전 값을 버리고 삭제해야합니다.
NOOOOO : get() 호출 후 delete를 호출하지 마십시오. 스마트 포인터는 여전히 사본을 가지고 있으며 객체를 해제 할 때 delete를 호출합니다. –