コピー可能にしたくないクラスがいくつかあります。これらのクラスのいくつかには、ポインター データ メンバーがあります。これらのクラスをコピーできないようにするために、次のクラス テンプレートを個人的に継承します。
template <class T>
class Uncopyable
{
protected:
Uncopyable() {}
virtual ~Uncopyable() {}
private:
Uncopyable(const Uncopyable &);
T & operator=(const T&);
};
私は次のように使用しました:
class Entity : private Uncopyable<Entity> { }
これは問題なく動作しますが、-Weffc++ でコンパイルすると、次の警告が引き続き表示されます。
class Entity has pointer data members
but does not override Entity(const Entity&)
or operator=(const Entity&)
なぜまだこの警告が表示されるのですか?