我想要一个与维度无关的模板(对 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;
};
wherearray_type
定义了由此类管理的数组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;
^