В boost::multi_array, какой тип подмассива?
Если у меня есть
boost::multi_array<int,2> myArray(boost::extents[10][10]);
Какой тип является следующим?
myArray[4]
Как мне определить ссылку на него в интерфейсе функции?
int doSomething(xxxxxx& mySubArray, const int dim) {
for (int i = 0; i < dim; i++) {
std::cout << mySubArray[i] << std::endl;
}
}
1 ответ
Решение
Из документации: boost::multi_array<int, 2>::reference
,
За NumDims == 2
это тип boost::multi_array<int, 2>::template subarray<1>::type
или поочередно boost::array_view_gen<boost::multi_array<int, 2>, 1>::type
, Как только размерность представления массива достигает 0, вы получаете ссылку на элемент (т.е. int &
) вместо