Используя CRTP , иногда я пишу такой код:
// this was written first
struct Foo : Base
{
...
};
// this was copy-pasted from Foo some days later
struct Bar : Base
{
...
};
И очень трудно понять, что идет не так, пока я не отслеживаю код в отладчике и убедитесь, что элементы Bar не используются в Base
.
Как выявить эту ошибку во время компиляции?
(Я использую MSVC2010, поэтому могу использовать некоторые функции C ++ 0x и расширения языка MSVC)