[Boost库] noncopyable——禁止拷贝的类
1、noncopyable允许程序轻松地实现一个禁止拷贝的类,在头文件<boost/noncopyable.hpp>中
2、实现原理很简单:noncopyable的实现就是用了C++中的阻止拷贝,
参考《C++ Primer》第五版P449或者我的笔记类的设计(2)——拷贝控制(阻止拷贝)
1)方式一:将拷贝构造函数和拷贝赋值运算符定义为private的
namespace noncopyable_ // protection from unintended ADL { class noncopyable { protected: noncopyable() {} ~noncopyable() {} private: // emphasize the following members are private noncopyable( const noncopyable& ); const noncopyable& operator=( const noncopyable& ); }; }
2)方式二:将拷贝构造函数和拷贝赋值运算符定义为删除的(=delete),采用C++11标准
class noncopyable { protected: noncopyable()=default; ~noncopyable() =default; noncopyable( const noncopyable& )=delete; const noncopyable& operator=( const noncopyable& )=delete; };