CRTPを使用して、次のようなコードを書くことがあります。
// this was written first
struct Foo : Base<Foo, ...>
{
...
};
// this was copy-pasted from Foo some days later
struct Bar : Base<Foo, ...>
{
...
};
そして、デバッガーでコードをトレースし、Barのメンバーがで使用されていないことを確認するまで、何が問題になっているのかを理解するのは非常に困難Base
です。
コンパイル時にこのエラーを明らかにするにはどうすればよいですか?
(私はMSVC2010を使用しているので、いくつかのC ++ 0x機能とMSVC言語拡張機能を使用できます)