Dave,

On Thursday 03 July 2003 09:32, David Abrahams wrote:
> Thomas Witt <[EMAIL PROTECTED]> writes:
> > I've checked in a fix for this. Static asserts make the instantiation of
> > iterator_adaptors members fail depending on the iterator category. You
> > may want to try it, though I don't have access to VC until tomorrow, so
> > it is not guaranteed to work.
>
> I guess with the new categories that might be OK.  With the old
> categories it was neccessary to allow operations which didn't
> correspond to the category so that users could build, e.g., random
> traversal readable rvalue iterators (had to be labeled as input
> iterator).  We should take care that we're not disallowing people from
> building useful iterators with capabilities that aren't accounted for
> by our categories.

The reason I choose to do it this way was that it was the least intrusive 
modification that did the job. I can envision a more sophisticated mix-in 
based approach but frankly I don't think that it's worth it.

As you said the problem of disallowing usefull combinations was mostly due to 
the old categories, but even with the old categories I would prefer the safe 
road. The user who wants to provide more than the category asks for can 
always reimplement the needed functions in a derived class. I like the idea 
of being explicit about doing something special. Furthermore I think that 
this inconvenience is more than outweighed by the added safety. Things that 
accidently compile should be avoided whereever possible.

Thomas

-- 
Dipl.-Ing. Thomas Witt
Institut fuer Verkehrswesen, Eisenbahnbau und -betrieb, Universitaet Hannover
voice: +49(0) 511 762 - 4273, fax: +49(0) 511 762-3001
http://www.ive.uni-hannover.de

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to