Члены данных базового класса шаблона не видны в производном классе шаблона?

Рассмотрим следующий код 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 :: foo () :

template_inherit .cpp: 12: ошибка: в этом не было объявлено 'usable_' размах.

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

6
задан iammilind 20 March 2012 в 07:42
поделиться