
on Wed Nov 12 2008, Thorsten Ottosen <thorsten.ottosen-AT-dezide.com> wrote:
David Abrahams skrev:
on Wed Nov 12 2008, Thorsten Ottosen <thorsten.ottosen-AT-dezide.com> wrote:
Do you mean that I can detect the return type of operator[] at compile-time and do correct forwarding?
No, I mean you can detect when the return type of operator[] is the same as the reference type. Maybe if it isn't, you could turn off whatever you're doing with enable_if or something. Why is iterator_range using the iterator's operator[], anyway?
It seems very natural to be able to index a random access range, doesn't it.
No comment.
And how else would you implement that?
The exact same way we implement it in iterator_facade. http://www.boost.org/doc/libs/1_37_0/libs/iterator/doc/iterator_facade.html#...
Anyway, I guess I could do that check. Is it illegal for the iterators reference type to be a non-reference?
No, but in C++03 that makes them input iterators or output iterators, but not forward iterators. -- Dave Abrahams BoostPro Computing http://www.boostpro.com