boost::noncopyable
(その目的のために明示的に設計された を使用できないと仮定します)
(C++11が使えないと仮定)
クラスをコピー不可にすると、通常、次の構文が表示されます。
class MyClass
{
public:
...
stuff
...
private:
MyClass(const MyClass&); // disables the copy constructor
MyClass& operator=(const MyClass&); // disables the copy assignment operator
};
この構文は長ったらしく見えます。代わりに以下を使用できると思います。
MyClass(MyClass&); // disables the copy constructor
void operator=(MyClass); // disables the copy assignment operator
これはより短いように見えます (クラスの名前を 4 回ではなく 3 回だけ繰り返します。また、 and も省略const
し&
ます)。
私の構文は他の構文とまったく同じことをしますか?
どちらかを優先する理由はありますか?