Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-09-08 18:37:41


"Neal D. Becker" <ndbecker2_at_[hidden]> 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

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk