我正在尝试将 a 存储boost::indices
在一个变量中。据我所知,这会产生一种index_gen
类型。但是,index_gen
似乎在 中进行了模板boost::detail
化,但模板参数未暴露于multi_array::index_gen
,并且它们似乎默认为<0,0>
,这会产生您将在下面看到的错误:
我尝试了以下方法:
#include "boost/multi_array.hpp"
int main()
{
typedef boost::multi_array<double, 3> array_type;
using IndexType = boost::array<array_type::index, 3>;
array_type A;
A.reshape(IndexType({{3,4,2}}));
// this works
array_type::array_view<3>::type myview =
A[ boost::indices[array_type::index_range(0,2)][array_type::index_range(1,3)][array_type::index_range(0,4)] ];
// This produces a compiler error:
array_type::index_gen test = boost::indices[array_type::index_range(0,2)][array_type::index_range(1,3)][array_type::index_range(0,4)];
}
错误是:
error: conversion from 'boost::detail::multi_array::index_gen<3, 3>' to non-scalar type 'boost::detail::multi_array::multi_array_base::index_gen {aka boost::detail::multi_array::index_gen<0, 0>}' requested
array_type::index_gen test = boost::indices[array_type::index_range(0,2)][array_type::index_range(1,3)][array_type::index_range(0,4)];
关于如何存储这个索引对象的任何想法?