Последний GotW говорит об этом. Увы, обычное хорошо написанное решение Херба Саттера не последовало. :(

отрим следующий код C ++,

template <typename Derived>
struct A
{
    bool usable_;
};

template <typename Derived>
struct B : A< B<Derived> >
{
    void foo()
    {
        usable_ = false;
    }
};

struct C : B<C>
{
    void foo()
    {
        usable_ = true;
    }
};

int main()
{
    C c;
}

Я получил ошибку компиляции: в функции-членеvoid B<Derived>::foo():

template_inherit.cpp: 12: ошибка: 'usable_' не было объявлено в этой области.

Это почему ? Любое хорошее исправление?

Ответы на вопрос(1)

Ваш ответ на вопрос