
"Neal D. Becker" <ndbecker2@verizon.net> writes:
#include <boost/numeric/ublas/vector.hpp>
namespace ublas = boost::numeric::ublas;
void F () { ublas::vector<int> u (10); int y = *u.begin(); int x = u.begin()[0]; }
This code fails to compile with g++34 + current boost.cvs.
Test.cc:8: error: no match for 'operator[]' in 'boost::numeric::ublas::vector<T, A>::begin() [with T = int, A = boost::numeric::ublas::unbounded_array<int, std::allocator<int> >]()[0]'
u.begin() should return an iterator, and the iterator should define operator[]. Why doesn't this work?
If these are (supposedly) random access iterators, it's because the ublas people aren't using iterator_facade or iterator_adaptor to define them. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com