多种类型的别名模板

Alias template for multiple types

本文关键字:别名 种类 类型      更新时间:2023-10-16

我有 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"声明冲突;

我该怎么做?

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