我有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'的模板声明冲突;
我该怎么做?
答案 0 :(得分:4)
template <size_t N, bool T>
using C = std::conditional_t<T, B<N>, A<N>>;