如果基类依赖于模板参数,则不会在非限定名称查找中检查其范围。我可以使用using
声明来引入基类中的名称。假设现在我在基类中有一个类型别名模板。是否可以使用using
声明将其引入派生类?
template<class T>
struct Base
{
using Type1 = int;
template<typename S>
using Type2 = S;
};
template<class T>
struct Derived : Base<T>
{
using typename Base<T>::Type1; // Fine
//using Type1 = typename Base<T>::Type1; // Also fine
template<typename S>
using Type2 = typename Base<T>::template Type2<S>;
};
Type2
的行可以替换为类似Type1
的(未注释)行的内容吗?