https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78231

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
See 17.6.3.2 [swappable.requirements]. ValueSwappable is defined in terms of
swappable, which is defined in terms of swappable with, which is defined in
terms of an unqualified call to swap. It has nothing to do with std::iter_swap.
This is a special rule for "swap" that doesn't apply to other functions.

17.6.1.1 [contents] says all references to iter_swap in the Standard Library
refer to ::std::iter_swap, i.e. any function specified to call iter_swap must
call ::std::iter_swap not some other function found by ADL.

Reply via email to