将类模板参数值之一指定为any

时间:2013-03-12 12:18:32

标签: c++ templates

考虑这个课程:

template<class T, int select>
class Foo()
{
  public:
    Foo() {}
    ~Foo() {}
    Param<select> value;
    void SomeInitialization();
    ...
}

我可以在没有明确提及模板参数列表中的select值的情况下,部分指定SomeInitialization()函数吗?例如,我想将函数实现合并为单个:

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()函数的代码无论如何都不使用它,并且上面的所有函数都有相同的代码,但我必须为每{{}}复制粘贴它1}}值。

我怎样才能实现这一目标?请在我的帖子中使用示例select课程提供答案。

1 个答案:

答案 0 :(得分:1)

如果您看一下this answer,您似乎只需要:

template<int N>
void Foo<SomeClass, N>::SomeInitialization() { ... }