Boost logo

Boost :

From: Thorsten Ottosen (thorsten.ottosen_at_[hidden])
Date: 2006-10-04 12:19:17

David Abrahams wrote:
> Thorsten Ottosen <thorsten.ottosen_at_[hidden]> writes:
>>Shunsuke Sogame wrote:
>>>Hi gurus, under RC_1_34,
>>> #include <boost/range.hpp>
>>> #include <boost/iterator/counting_iterator.hpp>
>>> int main()
>>> {
>>> boost::make_iterator_range(
>>> boost::make_counting_iterator(0),
>>> boost::make_counting_iterator(5)
>>> )[2];
>>> }
>>>VC++7.1 and GCC3.4 says a warning something like
>>>"returning address of local variable or temporary".
>>I think counting_iterator is not a valid random access iterator because
>>operator[]() does not yield a reference.
> That is not a requirement of random access iterator.

Reading the working draft from n2009, table 93 states that

   a[n] should be convertible to const T&.

>>Counting iterator should define its reference-type to be the type it
>>returns from operator[]() (even though it is not a reference). Then I
>>think it would work.
>>Do the authors of the iterator lib agree?
> No. There are good reasons that it works the way it does.

So there is no way to infer the the type of oprerator[]()
until we get decltype?


Boost list run by bdawes at, gregod at, cpdaniel at, john at