
David Abrahams <dave@boost-consulting.com> writes:
OK, all fixed and checked in.
One more word about this fix: iterator_facade now has to choose between *r++ = o being valid and being a conforming TR1 input iterator (which requires *r++ is of type T -- we have since declared that a defect and *r++ need only be convertible to T). It makes that choice by looking at the CategoryOrTraversal parameter: iff it's convertible to std::output_iterator_tag, *r++ = o will be valid. I am thinking it might be more appropriate to detect that *r is a proxy, and only make *r++ = o valid in that case. Can anyone think of a reason that a non-writable iterator implementation would need to return a proxy from its operator*? -- Dave Abrahams Boost Consulting http://www.boost-consulting.com