boost::noncopyableでコピー禁止のクラスを作る

C++では、クラスを書くとコピーコンストラクタと代入演算子が自動的に定義されます。

boost::noncopyableを使うと、コピーコンストラクタと代入演算子をprivateに定義することで、コピーのできないクラスになります。

#include <boost/utility.hpp>
//コピー禁止のクラス
class Foo : boost::noncopyable {};

Foo a, b;
a = b; //コンパイルエラー
Foo c(a); //コンパイルエラー

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください