【C++】Google C++ Style GuideのDISALLOW_COPY_AND_ASSIGN

C++のクラスでは、コピーコンストラクタと代入演算子を再定義しないと、デフォルトの設定が使われてしまう。 デフォルトのメソッドだとメモリリークなどの問題につながる可能性がある。 Google C++ Style Guideでは、以下のようにして、デフォルトの設定を使わないようにしている。

class ClassName{
private:
    DISALLOW_COPY_AND_ASSIGN(ClassName);
public:
};

このマクロは以下のように定義されている

#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&); \
void operator=(const TypeName&)