Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2002-11-19 12:46:48


"Bohdan" <warever_at_[hidden]> writes:

> Do you mean that *i returns proxy (not object or reference) ?
> Can you give some link where i can find rationale for this ?

A rationale? No, "them's the rules". The reasons why don't matter much
do they?

> (except standart paper) I know there were talks about it in boost,
> but i'm not sure i can easyly find this thread.

You can read all about the subtleties of iterator requirements in the
iterator adaptors paper:

      http://www.boost.org/libs/utility/iterator_adaptors.pdf

>> The way to make random access iterators over disk storage is to build
>> an iterator which stores its value_type internally. You can even
>> arrange for it to construct the value_type in its internal storage on
>> demand, so that it doesn't store anything until it is dereferenced.
>
> I was trying to convince Wesley to this approach but it is not easy
> :) He claims that it is much easier to return proxy and serialize /
> deserialize on assignment and cast, but I have feeling that it is
> blind alley for stl on disk.

You're right. It's not much good to provide sort-of-iterator things
that break down when you try to use them in algorithms which are
legitimately assuming real iterators.

-- 
                       David Abrahams
   dave_at_[hidden] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

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