我使用Eigen作为线性代数包。在那里,他们有固定的尺寸矩阵类型,定义是这样的:becasue我只用向量和方阵基于数据实例化int模板
template<class TNumber, size_t N, size_t M>
class Matrix
{...}
所以,我的大部分班结束了类似的模板:
template<size_t K>
class MyClass {...}
的尺寸K实际上将取决于从文件加载的数据。有没有实例化一个动态的大小为K这些模板,任何合理的方式,或者我必须有一个switch语句:
switch(dim) {
case 1: MyClass<1>...
case 2: MyClass<2>...
default: //too much data
}
?
如果您的软件支持动态调整大小,但编程接口是静态的,那么您可以尝试使用“即时”代码。您在运行时创建动态共享对象,然后加载它。 – jxh 2013-03-19 19:12:23