次元にとらわれないテンプレート (3d と 4d の両方に役立つ) が必要です。ほとんどの操作は、最初の次元が削除された部分行列で実行されます。
だからここに私が持っていたいものがあります
template <typename element, int dimensions>
class MMapMatrixTemplate{
public:
typedef boost::multi_array_ref<element, dimensions> array_type;
typedef std::array<size_t, dimensions> index_type;
typedef array_type::array_view<dimensions-1>::type stride_type;
};
array_type
このクラスによって管理される配列を定義する場所は、配列のインデックスに使用される型を定義します。この配列のスライスを 1 つ少ない次元で定義しindex_type
たいと思います。`stride_type
今のところ、エラーが発生します:
include/MMapMatrix.hh:31:55: error: non-template ‘array_view’ used as template
typedef boost::multi_array_ref<element, dimensions>::array_view<dimensions-1>::type stride_type;
^