
Thanx for the reply Yung-Chin. It compiles ok, what i get is a run time error. In a single main file, it works fine too. But i had trouble when declaring the multi_array in the header file, initializing it on the construtor and then trying to assign first position to a one dimension array in one method. It is something like this: //class header file boost::multi_array<char, 2> array2d; //class cpp file //at class constructor array2d = boost::multi_array<char,2>(boost::extents[x][y]); //at class method boost::multi_array<char, 1> array1d = array2d[0]; then it compiles fine. But at runtime i get the error: Reference boost::detail::multi_array::value_accessor_n<T, NumDims>::access(boost::type<Reference>, boost::multi_array_types::index, TPtr, const boost::multi_array_types::size_type*, const boost::multi_array_types::index*, const boost::multi_array_types::index*) const [with Reference = boost::detail::multi_array::sub_array<char, 1u>, TPtr = char*, T = char, unsigned int NumDims = 2u]: Assertion `size_type(idx - index_bases[0]) < extents[0]' failed. If you have an idea of what's going on, I'd be glad to know! On Thu, May 21, 2009 at 6:22 PM, Oei, YC <oei.yungchin@gmail.com> wrote:
//at class constructor boost::multi_array<char, 2> array2d = new boost::multi_array<char, 2>(boost::extents[x][y]);
//at class method boost::multi_array<char, 1> array1d = array2d[0];
I tried out those two lines (minus the "new") here (see below), and they compile without complaints in g++ 4.1.2.
Yung-Chin
-- contents of test file --
#include <iostream> #include <boost/multi_array.hpp>
int main() { size_t x = 5; size_t y = 7;
boost::multi_array<char, 2> array2d = boost::multi_array<char, 2>(boost::extents[x][y]); std::cout << array2d.num_dimensions() << std::endl; std::cout << array2d[0].num_dimensions() << std::endl;
boost::multi_array<char, 1> array1d = array2d[0]; std::cout << array1d.num_dimensions() << std::endl; return 0; } //main _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- Matheus Araújo Aguiar Computer Scientist matheus.pit@gmail.com