为接受可变参数模板参数的(类)模板生成特化的最佳方法是什么。
在我的用例中,我有一个接受多个整数的类,我想要一个专门化的情况,只有一个整数作为参数,但整数的值可以是任意的。
例如:
template <int a, int ...b>
class c {
private:
c<b...> otherClass;
}
template <int a>
class c {
// Some base case
}
这可以做到这一点,或者实现这种专业化的最简单方法是什么?
答案 0 :(得分:0)
类模板特化将模板参数附加到类名称中:
template <int a>
class c<a> {};
^^^
答案 1 :(得分:0)
如果我能正确理解你的问题,那么正常的模板专业化就足够了。
#include <iostream>
template <int a, int ...b>
struct c {
c() { std::cout << "Normal" << std::endl; }
};
template <int a>
struct c<a> {
c() { std::cout << "Special" << std::endl; }
};
int main() {
c<1,2> c1;
c<2> c2;
}