是否可以在C++中对类模板进行别名

Is it possible to alias a class template in C++?

本文关键字:别名 C++ 是否      更新时间:2023-10-16
template <typename T>
struct A
{
  template <typename T1>
  struct B {};
};
template <typename T>
using b = A<T>::B;

上面的行拒绝编译。

clang给出以下错误:类模板"A<T> ::type"需要模板参数

因为B是模板,所以它应该提供一个模板参数

template <typename T>
struct A
{
  template <typename T1>
  struct B {};
};
template <typename T,typename  T1>
using b =   typename  A<T>::template B<T1>;