我通常将 boost::scoped_ptr 用于 pimpl(原因之一是因为如果我忘记处理复制构造函数,我不会感到惊讶)
但是,对于模板,我不能只将析构函数放在完全定义 impl 的 cpp 文件中,以满足 scoped_ptr 析构函数的要求。无论如何它确实有效,但我不确定它是保证有效还是偶然。是否有一些“最佳实践”或标准?scoped_ptr 是不可复制类中 pimpls 的最佳智能指针吗?
template <class T> class C {
public:
C(){}
~C(){}
private:
boost::scoped_ptr<T> pimpl_;
};