我使用Eigen作为线性代数包。他们有固定大小的矩阵类型,定义如下:
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
}
?