是否可以专门化别名声明?

时间:2015-09-08 08:31:51

标签: c++

我可以通过使用具有类型成员的辅助结构来实现此目的,但我想知道using是否可以实现。下面没有编译。除了使用辅助结构之外的任何变通方法吗?

template<int ...>
struct A
{
};

template<typename>
using B;

template<int n, int ...ns>
using B<A<n, ns...>> = A<ns...>;

1 个答案:

答案 0 :(得分:1)

我自己找到了解决方案。

template<int ...>
struct A;

template<typename>
struct B_;

template<int n, int ...ns>
struct B_<A<n, ns...>>
{
  typedef A<ns...> Type;
};

template<typename T>
using B = typename B_<T>::Type;