template <typename T>
struct A
{
template <typename T1>
struct B {};
};
template <typename T>
using b = A<T>::B;
上面一行拒绝编译。
clang给出了这个错误: 使用类模板'A&lt; T&gt; :: type'需要模板参数
答案 0 :(得分:3)
因为B是模板,它应该提供模板参数
template <typename T>
struct A
{
template <typename T1>
struct B {};
};
template <typename T,typename T1>
using b = typename A<T>::template B<T1>;