考虑这个类:
template<class T, int select>
class Foo()
{
public:
Foo() {}
~Foo() {}
Param<select> value;
void SomeInitialization();
...
}
我可以部分指定 SomeInitialization() 函数而不在其模板参数列表中明确提及 select
值吗?例如,我想将功能实现合并为一个:
template<>
void Foo<SomeClass, 0>::SomeInitialization() { ... }
template<>
void Foo<SomeClass, 1>::SomeInitialization() { ... }
template<>
void Foo<SomeClass, 2>::SomeInitialization() { ... }
变成这样的东西(伪代码):
template<>
void Foo<SomeClass>::SomeInitialization() { ... }
其中 select
可以是任何值,因为我的 SomeInitialization()
函数的代码无论如何都不使用它,并且上面的所有函数都有相同的代码,但我有为每个 select
值复制粘贴它。
我怎样才能做到这一点?请使用我帖子中的示例 Foo
类提供答案。
最佳答案
如果你看一下this answer ,似乎您所要做的就是:
template<int N>
void Foo<SomeClass, N>::SomeInitialization() { ... }
关于c++ - 将类模板参数值之一指定为任意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15360995/