[libc++] Fix unintended ADL inside ref(reference_wrapper<T>) and cref(reference_wrapp...
authorLogan Smith <logan.r.smith0@gmail.com>
Thu, 20 Feb 2020 17:20:21 +0000 (12:20 -0500)
committerLouis Dionne <ldionne@apple.com>
Thu, 20 Feb 2020 17:22:21 +0000 (12:22 -0500)
commite442f38395f71b680bc1174568e461b5ff1f7ebf
treedd068c7843cda55f507c3ba6d2fdb57cd7d7680c
parent3543ac9ab52df77af55a2ebdeeddfb76aba15d29
[libc++] Fix unintended ADL inside ref(reference_wrapper<T>) and cref(reference_wrapper<T>)

This patch qualifies calls to ref and cref inside ref(reference_wrapper<T>)
and cref(reference_wrapper<T>), respectively. These previously unqualified
calls could break in the presence of user functions called ref/cref inside
associated namespaces: https://gcc.godbolt.org/z/8VfprT

Fixes PR44398.

Differential Revision: https://reviews.llvm.org/D74287
libcxx/include/__functional_base
libcxx/test/std/utilities/function.objects/refwrap/refwrap.helpers/cref_2.pass.cpp
libcxx/test/std/utilities/function.objects/refwrap/refwrap.helpers/ref_2.pass.cpp