在带有tempate base的派生类中使用声明类型别名模板

时间:2017-02-24 18:14:36

标签: c++ c++11 templates using

如果基类依赖于模板参数,则不会在非限定名称查找中检查其范围。我可以使用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的(未注释)行的内容吗?

0 个答案:

没有答案