作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个类模板
template<class T>
class A
{...};
当 T 是一个元组时,我想专门化它。我想我可以做到这一点
template<class Args...>
class A<std::tuple<Args...>>
{...};
但是,我的编译器不支持可变模板参数,怎么办?
最佳答案
您可以针对每个不同元数的元组专门化它:
// explicit specialization for 0-element tuples
template<>
class A<std::tuple<>>
{...};
// partial specialization for 1-element tuples
template<class Arg>
class A<std::tuple<Arg>>
{...};
// partial specialization for 2-element tuples
template<class Arg0, class Arg1>
class A<std::tuple<Arg0, Arg1>>
{...};
...等等,直到您需要支持的元组元素的最大数量为止。
关于c++ - 当不支持可变模板参数时,如何为元组专门化类模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19140246/
我有一个带有模板函数的基类,该函数具有通用模板类型和专用版本。 #ifndef BASE_CLASS #define BASE_CLASS #include using namespace std;
我有这个 3D vector 模板 template class Vec3TYPE{ public: union{ struct{ TYPE x,y,z; }; struct{ TY
我是一名优秀的程序员,十分优秀!