malloc 또는 new를 사용하여 만든 포인터를 반환하는 라이브러리 함수를 거의 사용하지 않습니다. 그래서 어떤 유형의 할당이 사용되었는지에 따라 자체 고객 할당 취소자가 있습니다.shared_ptr에서 deallocator & allocator 사용
예컨대는
shared_ptr<int> ptr1(LibFunctA(), &MallocDeleter); //LibFunctA returns pointer created using malloc
shared_ptr<int> ptr2(LibFunctB(), &newDeleter); //LibFunctB returns pointer created using new
지금, 나는이 이상하지만, 다른 어떤 시나리오가 많이 사용되는 역할 당기의 매우 순진 사용을 이해?
또한 고객 할당자는 어떻게 사용할 수 있습니까? 나는 아래와 같이 커스텀 할당자를 할당하려고 시도했다. 그러나 실제로 그것을 어떻게 호출 할 수 있을까? 이러한 종류의 기능은 어디에 도움이됩니까?
shared_ptr<int> ptr3(nullptr_t, &CustomDeleter, &CustomAllocator); //assume both functs are defined somewhere.
다음은 [더 많은 아이디어] (http://codereview.stackexchange.com/questions/4679/shared-ptr-and-file-for-wrap-cstdio-update-also-dlfcn-h)입니다. –
아마도 : [부스트 shared_ptr : 어떻게 사용자 정의 deleters 및 할당자를 사용하는 방법] (http://stackoverflow.com/q/3378621/33732). –