私は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
}
?