
It seems to me that the standard should specify whether iterator::reference must outlive its iterator. That's a separate issue. It doesn't.
I am confused. As far as I understand, Bo Persson just posted that this has been clarified: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2807.html#198 So reference/pointer do not outlive their iterator, and in our case, boost::counting_iterator is correct and boost::reverse_iterator is wrong. Or what am I missing? Arno -- Dr. Arno Schoedl · aschoedl@think-cell.com Technical Director think-cell Software GmbH · Invalidenstr. 34 · 10115 Berlin, Germany http://www.think-cell.com · phone +49-30-666473-10 · toll-free (US) +1-800-891-8091 Directors: Dr. Markus Hannebauer, Dr. Arno Schoedl · Amtsgericht Charlottenburg, HRB 85229