1.boost::noncopyable
源码:
class noncopyable
{
protected:
noncopyable() {}
~noncopyable() {}
private: // emphasize the following members are private
noncopyable( const noncopyable& );
const noncopyable& operator=( const noncopyable& );
};
复制构造和赋值操作符都是私有的,导致派生类不能去进行复制操作。派生类没有定义复制构造函数,只有该派生类对象使用了复制构造,编译时才会出错,不用是不会编译出错的。
2.