多种类型的别名模板

时间:2019-07-12 15:08:29

标签: c++ c++11 templates type-alias

我有2种模板化类型:

A<int N>
B<int N>

我需要将这两种类型作为单一的第三种类型的别名

C<int N, bool T>

基本上我想要的是这个

template<size_t N, bool T = false>
using C = A<N>;

template<size_t N, bool T = true>
using C = B<N>;

但是这会引发冲突的声明错误。

错误:使用C = B的模板'使用C = B'的模板声明冲突;

我该怎么做?

1 个答案:

答案 0 :(得分:4)

template <size_t N, bool T>
using C = std::conditional_t<T, B<N>, A<N>>;