The remainder of the Pre-emptively support P0646R1 for std container erasure.

From-SVN: r266673
This commit is contained in:
Edward Smith-Rowland 2018-11-30 16:13:29 +00:00
parent 0b44b4b807
commit 32bbb362ef
1 changed files with 6 additions and 2 deletions

View File

@ -95,19 +95,23 @@ namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
template<typename _Tp, typename _Alloc, typename _Predicate>
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<typename _Tp, typename _Alloc, typename _Up>
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