C++では、クラスを書くとコピーコンストラクタと代入演算子が自動的に定義されます。
boost::noncopyableを使うと、コピーコンストラクタと代入演算子をprivateに定義することで、コピーのできないクラスになります。
#include <boost/utility.hpp>
//コピー禁止のクラス
class Foo : boost::noncopyable {};
Foo a, b;
a = b; //コンパイルエラー
Foo c(a); //コンパイルエラー
C++では、クラスを書くとコピーコンストラクタと代入演算子が自動的に定義されます。
boost::noncopyableを使うと、コピーコンストラクタと代入演算子をprivateに定義することで、コピーのできないクラスになります。
#include <boost/utility.hpp>
//コピー禁止のクラス
class Foo : boost::noncopyable {};
Foo a, b;
a = b; //コンパイルエラー
Foo c(a); //コンパイルエラー