Оператор использования C ++ в области функции-члена

Если я хочу использовать член базового класса шаблона из производного класса шаблона, я должен включить его в область видимости как таковой:

template <typename T>
struct base
{
    void foo();
};

template <typename T>
struct derived : base<T>
{
    using base<T>::foo;
};

Почему я не могу поместить этот оператор using в локальная область видимости, как и другие операторы using?

template <typename T>
struct base
{
    void foo();
};

template <typename T>
struct derived : base<T>
{
    void f()
    {
        using base<T>::foo;  // ERROR: base<T> is not a namespace
    }
};
6
задан HC4 - reinstate Monica 24 February 2011 в 04:45
поделиться