【发布时间】:2020-02-06 15:37:09
【问题描述】:
我是 C++ 的新手,并且被一个实现卡住了。所以我的问题如下:
我有接口类,其中类的唯一区别是没有。其功能之一的参数。
例如:
class foo3()
{
private:
function3(a,b,c) {}
};
class foo5()
{
private:
function5(a,b,c,d,e) {}
};
为了概括这些并在不了解其内部功能的情况下使用它们,我创建了一个模板类 fooN 并使用了模板专业化,因此基于模板参数(int N)我可以选择正确的类对象并进行一些处理。
现在我有了创建 fooN 模板对象的算法
class algo {
public:
fooN<5> fooObj;
private:
}
是否可以在运行时动态分配此模板参数(5),或者是否有解决方法?
目前我正在使用 CMake 来静态设置模板参数。
【问题讨论】:
-
你想过 std::tuple 吗?
-
您到底想达到什么目的?为什么不直接创建一个带有任意数量参数的“foo”版本,或者通过使其成为可变参数模板(不是 C 风格的可变参数函数)或采用 std::initializer_list...?