aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2019-01-29 00:47:38 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2019-01-29 00:47:38 +0000
commitf7f07df5e2ba0047b5ffefe7982058c73759b5cf (patch)
tree43620b17d2494ce0e352c3cf7d131d89d1f0e5c2
parent2104ca71da1120a7b2b35e3178624b04d30bdfde (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--libstdc++-v3/include/experimental/forward_list4
-rw-r--r--libstdc++-v3/include/experimental/list4
-rw-r--r--libstdc++-v3/include/std/forward_list5
-rw-r--r--libstdc++-v3/include/std/list5
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