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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268356
138bc75d-0d04-0410-961f-
82ee72b054a4
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.
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 {
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 {
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
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