c++ - 多种类型的别名模板

标签 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 的模板”的声明冲突;

我该怎么做?

最佳答案

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

关于c++ - 多种类型的别名模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57009678/

相关文章:

c++ - 有没有办法将文字字符串放入 <char...> 模板中?

c++ - 如何在.cpp中实现属于非模板类的模板函数

C++ vector 的 vector

c# - 从 C++ 到 C# 的 3D vector 结构

c++ - 如何将一个类中声明的类的数据类型访问到另一个类(都在不同的翻译单元中)?

c++11 - 为什么 std::aligned_union 需要最小尺寸作为模板参数?

c++ - 非静态成员函数的无效使用 在类模板的成员函数的实例化中?

azure - 事件订阅存储队列ARM模板

c++ - 无法从模板类内的模板函数类调​​用类函数

c++ - 是否有一种巧妙的方法来避免覆盖模板基类的所有纯虚函数,用于多重继承