Boost logo

Boost :

From: David Abrahams (abrahams_at_[hidden])
Date: 2001-03-28 14:12:54


----- Original Message -----
From: "Gary Powell" <Gary.Powell_at_[hidden]>

> What do you think about container trait concepts?

I used the idea when I wrote my standard library exception-safety test years
ago, so I know they are useful.

Unfortunately, the non-uniformity of the standard containers makes the
Container concept less useful than it should be, but container_traits could
help a bit.

> Yes, but because VTL creates these iterators with the "correct tag", as in
> the one from the iterator that is created, and we use that tag to make the
> necessary interface. You lose "rbegin(), rend(), operator[](), at(),
> back()" with only a input_iterator_tag. It also means that algorithms will
> not select the most efficient operations, e.g. advance will call
++iterator
> repeatedly instead of iterator += etc.

Correct. Unfortunately, there's nothing we can do without more fine-grained
concepts and altorithms written to take advantage of them. Maybe we could
convince Boris Fomitchev to add support for such things as
RandomAccessValueIterator to STLport library if we were willing to write the
code.
Maybe Matt Austern would also be interested in supporting these things in
his new standard library implementation. Matt, Boris?

> > > It makes no sense to link these two concepts.
> >
> > Yeah, it would've been nice if Stepanov had 20-20 foresight, eh? He did
> > remarkably well, all things considered.
> >
> True enough, just separating algorithms, containers and iterators,
> the concept itself is enough, nevermind the ream of code that we
> got along with it.
>
> In some ways it has made my life better that he missed the expression
> template connection because it has given me something to work on.
>
> We'll keep you posted on developments.


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