Boost logo

Ublas :

From: Dominique Marcadet (Dominique.Marcadet_at_[hidden])
Date: 2005-01-06 09:56:48

>>I am using ublas::indirect_array <ublas::vector <size_t> > (for use with matrix_indirect) in a project.
>>It works with Boost 1.31.0, but not with Boost 1.32.0 because const_pointer is no more defined in ublas::vector (and pointer is privately defined).
>I just tried to create the above and it works on the CVS HEAD. Could you provide a test-case that fails ?

Here is one :

% cat test_indirect_array.cpp

#include <boost/numeric/ublas/vector.hpp>

using namespace boost::numeric::ublas;

int main()
    indirect_array <vector <size_t> > vi( 10 );

% c++ -v
Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs
Thread model: posix
gcc version 3.3 20030304 (Apple Computer, Inc. build 1671)

% c++ -c -Wno-long-double -fabi-version=0 -I../Boost-HEAD/boost test_indirect_array.cpp
../Boost-HEAD/boost/boost/numeric/ublas/storage.hpp: In instantiation of `boost::numeric::ublas::indirect_array<boost::numeric::ublas::vector<size_t, boost::numeric::ublas::unbounded_array<size_t, std::allocator<size_t> > > >':
test_indirect_array.cpp:8: instantiated from here
../Boost-HEAD/boost/boost/numeric/ublas/vector.hpp:34: error: `typedef const
   boost::numeric::ublas::unbounded_array<size_t, std::allocator<size_t> >
>::const_pointer' is private
../Boost-HEAD/boost/boost/numeric/ublas/storage.hpp:1225: error: within this
../Boost-HEAD/boost/boost/numeric/ublas/vector.hpp:33: error: `typedef
   boost::numeric::ublas::unbounded_array<size_t, std::allocator<size_t> >
>::pointer' is private

>I also would say that I would not expect to use a vector as storage for an indirect_array, I think using an unbounded_array makes much more senses.

It works with unbounded_array, but I didn't thought about it when I wrote my code.