c++ - 将类模板参数值之一指定为任意

标签 c++ templates

考虑这个类:

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/

相关文章:

c++ - 模板模板参数不起作用

c++ - OpenCV 让用户选择打开图像

xml - 在同一级别为同一 XML 元素呈现不同的模板

c++ - 如何在C++中实例化模板

c++ - 这是 g++ 或 clang++ 中的错误吗

c++ - 未初始化对象列表

c++ - 了解 128 位数字的左移和右移

javascript - 保留元素的 JS 模板引擎

javascript - 如何获得在 Visual Studio 2015 中运行的 Cordova 项目模板?

c++ - 模板别名上下文中的模板<>模板<>语法是什么?