1

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)];

このインデックス オブジェクトを格納する方法について何か考えはありますか?

4

0 に答える 0