From c11bc7c2fb106fff4d1de083afdea7e23d8ab1bf Mon Sep 17 00:00:00 2001 From: emsr Date: Fri, 30 Nov 2018 16:13:29 +0000 Subject: [PATCH] The remainder of the Pre-emptively support P0646R1 for std container erasure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266673 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/include/std/deque | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/include/std/deque b/libstdc++-v3/include/std/deque index 25de200cefd2..23dc752c4b22 100644 --- a/libstdc++-v3/include/std/deque +++ b/libstdc++-v3/include/std/deque @@ -95,19 +95,23 @@ namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION template - inline void + inline typename deque<_Tp, _Alloc>::size_type erase_if(deque<_Tp, _Alloc>& __cont, _Predicate __pred) { + const auto __osz = __cont.size(); __cont.erase(std::remove_if(__cont.begin(), __cont.end(), __pred), __cont.end()); + return __osz - __cont.size(); } template - inline void + inline typename deque<_Tp, _Alloc>::size_type erase(deque<_Tp, _Alloc>& __cont, const _Up& __value) { + const auto __osz = __cont.size(); __cont.erase(std::remove(__cont.begin(), __cont.end(), __value), __cont.end()); + return __osz - __cont.size(); } _GLIBCXX_END_NAMESPACE_VERSION } // namespace std -- 2.47.2