http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58403
Bug ID: 58403 Summary: __normal_iterator triggers odr-use Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: lichray at gmail dot com Some __normal_iterator's operators take `const difference_type&`, which triggers odr-use of its argument and results in a linker-error. Both reverse_iterator and move_iterator take `difference_type`, and libc++ does it for its __wrap_iter as well. I think this should be a recommended choice.