在我的代码中,我希望 boost::shared_ptr 不调用 delete,而是调用 ptr->deleteMe()。
我还有一些返回 ptr 的 C 风格函数。我可以叫它 lib_freeXYZ(ptr);而不是尝试删除?
最佳答案
或者如何使用 STL 来提供包装仿函数 - Doug T. 描述但没有自定义调用者。
boost::shared_ptr<T> ptr( new T, std::mem_fun_ref(&T::deleteMe) );
boost::shared_ptr<S> ptr( new S, std::ptr_fun(lib_freeXYZ) );
关于c++ - 使 shared_ptr 不使用删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/441306/