29 #ifndef _GLIBCXX_FORWARD_LIST
30 #define _GLIBCXX_FORWARD_LIST 1
32 #pragma GCC system_header
34 #if __cplusplus < 201103L
46 #ifdef _GLIBCXX_PROFILE
50 #if __cplusplus >= 201703L
51 namespace std _GLIBCXX_VISIBILITY(default)
53 _GLIBCXX_BEGIN_NAMESPACE_VERSION
56 template<
typename _Tp>
class polymorphic_allocator;
57 template<
typename _Tp>
60 _GLIBCXX_END_NAMESPACE_VERSION
64 #if __cplusplus > 201703L
65 namespace std _GLIBCXX_VISIBILITY(default)
67 _GLIBCXX_BEGIN_NAMESPACE_VERSION
69 #define __cpp_lib_erase_if 201900L
71 template<
typename _Tp,
typename _Alloc,
typename _Predicate>
72 inline typename forward_list<_Tp, _Alloc>::size_type
73 erase_if(forward_list<_Tp, _Alloc>& __cont, _Predicate __pred)
74 {
return __cont.remove_if(__pred); }
76 template<
typename _Tp,
typename _Alloc,
typename _Up>
77 inline typename forward_list<_Tp, _Alloc>::size_type
78 erase(forward_list<_Tp, _Alloc>& __cont,
const _Up& __value)
80 using __elem_type =
typename forward_list<_Tp, _Alloc>::value_type;
81 return std::erase_if(__cont, [&](__elem_type& __elem) {
82 return __elem == __value;
85 _GLIBCXX_END_NAMESPACE_VERSION
91 #endif // _GLIBCXX_FORWARD_LIST
A standard container with linear time access to elements, and fixed time insertion/deletion at any po...