diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2019-01-29 00:47:38 +0000 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2019-01-29 00:47:38 +0000 |
commit | f7f07df5e2ba0047b5ffefe7982058c73759b5cf (patch) | |
tree | 43620b17d2494ce0e352c3cf7d131d89d1f0e5c2 | |
parent | 2104ca71da1120a7b2b35e3178624b04d30bdfde (diff) | |
download | gcc-f7f07df5e2ba0047b5ffefe7982058c73759b5cf.zip gcc-f7f07df5e2ba0047b5ffefe7982058c73759b5cf.tar.gz gcc-f7f07df5e2ba0047b5ffefe7982058c73759b5cf.tar.bz2 |
Avoid ambiguity between C++2a std::erase_if and LFTS version
These calls should have been qualified to avoid ADL anyway, but in C++2a
it becomes essential to qualify the calls in experimental::erase because
std::erase_if is also declared and the calls become ambiguous.
* include/experimental/forward_list (experimental::erase): Qualify
call to erase_if.
* include/experimental/list (experimental::erase): Likewise.
* include/std/forward_list (std::erase): Likewise.
* include/std/list (std::erase): Likewise.
From-SVN: r268356
-rw-r--r-- | libstdc++-v3/ChangeLog | 6 | ||||
-rw-r--r-- | libstdc++-v3/include/experimental/forward_list | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/experimental/list | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/std/forward_list | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/std/list | 5 |
5 files changed, 18 insertions, 6 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index fc6f7d1..7af725a 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,11 @@ 2019-01-29 Jonathan Wakely <jwakely@redhat.com> + * include/experimental/forward_list (experimental::erase): Qualify + call to erase_if. + * include/experimental/list (experimental::erase): Likewise. + * include/std/forward_list (std::erase): Likewise. + * include/std/list (std::erase): Likewise. + * testsuite/20_util/reference_wrapper/result_type.cc: Disable for C++2a. * testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise. diff --git a/libstdc++-v3/include/experimental/forward_list b/libstdc++-v3/include/experimental/forward_list index 60f0564..f6ffbf0 100644 --- a/libstdc++-v3/include/experimental/forward_list +++ b/libstdc++-v3/include/experimental/forward_list @@ -54,7 +54,9 @@ inline namespace fundamentals_v2 erase(forward_list<_Tp, _Alloc>& __cont, const _Up& __value) { using __elem_type = typename forward_list<_Tp, _Alloc>::value_type; - erase_if(__cont, [&](__elem_type& __elem) { return __elem == __value; }); + std::experimental::erase_if(__cont, [&](__elem_type& __elem) { + return __elem == __value; + }); } namespace pmr { diff --git a/libstdc++-v3/include/experimental/list b/libstdc++-v3/include/experimental/list index 13c33f0..2b7a331 100644 --- a/libstdc++-v3/include/experimental/list +++ b/libstdc++-v3/include/experimental/list @@ -54,7 +54,9 @@ inline namespace fundamentals_v2 erase(list<_Tp, _Alloc>& __cont, const _Up& __value) { using __elem_type = typename list<_Tp, _Alloc>::value_type; - erase_if(__cont, [&](__elem_type& __elem) { return __elem == __value; }); + experimental::erase_if(__cont, [&](__elem_type& __elem) { + return __elem == __value; + }); } namespace pmr { diff --git a/libstdc++-v3/include/std/forward_list b/libstdc++-v3/include/std/forward_list index 3d3b6d4..9d6cc40 100644 --- a/libstdc++-v3/include/std/forward_list +++ b/libstdc++-v3/include/std/forward_list @@ -78,8 +78,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION erase(forward_list<_Tp, _Alloc>& __cont, const _Up& __value) { using __elem_type = typename forward_list<_Tp, _Alloc>::value_type; - return erase_if(__cont, - [&](__elem_type& __elem) { return __elem == __value; }); + return std::erase_if(__cont, [&](__elem_type& __elem) { + return __elem == __value; + }); } _GLIBCXX_END_NAMESPACE_VERSION } // namespace std diff --git a/libstdc++-v3/include/std/list b/libstdc++-v3/include/std/list index 7b02e86..8d6ac19 100644 --- a/libstdc++-v3/include/std/list +++ b/libstdc++-v3/include/std/list @@ -102,8 +102,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION erase(list<_Tp, _Alloc>& __cont, const _Up& __value) { using __elem_type = typename list<_Tp, _Alloc>::value_type; - return erase_if(__cont, - [&](__elem_type& __elem) { return __elem == __value; }); + return std::erase_if(__cont, [&](__elem_type& __elem) { + return __elem == __value; + }); } _GLIBCXX_END_NAMESPACE_VERSION } // namespace std |