best of both worlds: ptr_vector and multi_array

This question is perhaps, rather a feature request from multi_array: ptr_vector (of pointer container library) is nice but it is not multi dimensional, multi_array is nice but it is not, well, ptr_multi_array. For any single dimensional random access array there is multi_array_ref: /**/ boost::array<size_t,2> shape = {4,4}; std::vector<int> v(16); boost::multi_array_ref<int,2> mav(&v[0],shape); /**/ But, this (&v[0]) wouldn't work with ptr_vector, due to the indirected interface of pointer containers. I was thinking, one way of achieving this is to have multi_array_ref work with any random access container, rather than just plain C array. The above example would be: /**/ boost::array<size_t,2> shape = {4,4}; std::vector<int> v(16); boost::multi_array_ref< std::vector<int>, 2 > mav(v,shape); /**/ Note the change of the first template parameter of multi_array_ref from the element type to, container type. This way, it would similarly be possible to use it with ptr_vector, or any other random access container for that matter: /**/ class foo; boost::array<size_t,2> shape = {4,4}; boost::ptr_vector<foo> v(16); boost::multi_array_ref< boost::ptr_vector<foo>, 2 > mav(v,shape); /**/ The thing is, I am not sure if this can be done with the multi_array library. Or, what other ways are there to get a multi dimenstional pointer container? thanks - Levent.
participants (1)
-
Levent Yilmaz