Если я хочу использовать член базового класса шаблона из производного класса шаблона, я должен включить его в область видимости как таковой:
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
}
};