Boost logo

Boost :

From: David Abrahams (david.abrahams_at_[hidden])
Date: 2001-10-10 18:56:19

----- Original Message -----
From: "Peter Dimov" <pdimov_at_[hidden]>

> From: "David Abrahams" <david.abrahams_at_[hidden]>
> > From: "Peter Dimov" <pdimov_at_[hidden]>
> >
> > > moreover, the whole concept of
> > > Iterator::value_type becomes redundant - you can use typeof(*it) to
> > > determine it.
> >
> > Unless we allow proxy references ;-)
> Oh yes, proxy references. vector<bool>. Database containers.
> reads from writes. Copy on write.
> Do you think that this can be made to work?


> I'm somewhat on the pessimistic
> side. We have something - the STL containers/iterators - that works, more
> less, and solves real problems. Trying to evolve the ultimate data view
> model from it may not be worth the effort.

Well, that's a different question, isn't it?

Personally, I think it is worth the effort to evolve it at least a little.
When Jeremy and I worked on the Iterator Adaptor library we kept finding
places where we had to make pessimistic assumptions about underlying
iterators that compromised functionality (e.g. operator[] has to return
by-value). A better system of concepts for iterators, which separated
traversal from data access, would have helped a lot. Also, if we could find
a place in the framework for vector<bool>::iterator, we'd be able to fix the
standard so that algorithms would behave predictably with vector<bool>
(since vendors don't seem willing to pull the vector<bool> specialization
out of the standard).

BTW, I don't think "STL containers" works, at least not in the generic
sense. I know of no significant and successful libraries that treat
containers generically; do you?

  David Abrahams, C++ library designer for hire

        C++ Booster (
          email: david.abrahams_at_[hidden]

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