http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60448
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- I don't understand what we can be doing wrong in the library, we just call std::iter_swap(it1, it2) which calls swap(*it1, *it2) unqualified.