
Roland Schwarz wrote:
The attached patch to iterator_facade made my "Readable" and "Writeable" == "Swapable" iterator work. However I am not practised enough to tell if this will break something else.
I believe this would break code where reference == value_type (not unusual for input iterators), because the two conversion operators would have the same target type. This could be solved with specialization. It might also introduce ambiguities where reference == value_type& (requirement for lvalue iterators). This should be pretty trivial to test. void foo(const int &i); int main() { iterator_with_value_type_ref_as_reference r = get_that_iterator(); foo(r[0]); } It should also be possible to solve via specialization - there's no need for the conversion to value_type if reference == value_type&. Sebastian