29#ifndef _GLIBCXX_DEBUG_SAFE_SEQUENCE_H
30#define _GLIBCXX_DEBUG_SAFE_SEQUENCE_H 1
43 template<
typename _Type>
50 explicit _Not_equal_to(
const _Type& __v) : __value(__v) { }
53 operator()(
const _Type& __x)
const
54 {
return __value != __x; }
59 template <
typename _Type>
66 explicit _Equal_to(
const _Type& __v) : __value(__v) { }
69 operator()(
const _Type& __x)
const
70 {
return __value == __x; }
75 template<
typename _Iterator>
86 _After_nth_from(
const difference_type& __n,
const _Iterator&
__base)
87 : _M_base(
__base), _M_n(__n) { }
90 operator()(
const _Iterator& __x)
const
91 {
return __x - _M_base >= _M_n; }
110 template<
typename _Sequence>
118 template<
typename _Predicate>
119 _GLIBCXX20_CONSTEXPR
void
126 template<
typename _Predicate>
129 _Predicate __pred)
const;
134 template<
typename _Sequence>
146#if __cplusplus >= 201103L
151 __x._M_invalidate_all();
157 _GLIBCXX20_CONSTEXPR
void
160 if (std::__is_constant_evaluated())
163 typedef typename _Sequence::const_iterator _Const_iterator;
164 typedef typename _Const_iterator::iterator_type _Base_const_iterator;
166 const _Sequence& __seq = *
static_cast<const _Sequence*
>(
this);
GNU debug classes for public use.
constexpr _Iterator __base(_Iterator __it)
Traits class for iterators.
Base class for constructing a safe sequence type that tracks iterators that reference it.
constexpr void _M_invalidate_if(_Predicate __pred) const
void _M_transfer_from_if(const _Safe_sequence &__from, _Predicate __pred) const
constexpr void _M_invalidate_all() const
Like _Safe_sequence but with a special _M_invalidate_all implementation not invalidating past-the-end...