読者です 読者をやめる 読者になる 読者になる

C++ コンパイラがデフォルトで提供するメンバ関数の無効化

オブジェクトのコピーを抑制するには,クラス型のコピーコンストラクタと代入演算子を無効化する必要がある.
C++11では,コンパイラがデフォルトで提供するメンバ関数を利用させないようにすることを明示的に宣言できる手段がある.具体的には,メンバ関数の宣言に "=delete" を付加する.

class SlamSystem {

public:
// コピーコンストラクタの無効化
SlamSystem(const SlamSystem&) = delete;

// 代入演算子の無効化
SlamSystem& operator=(const SlamSystem&) = delete;

}