29#ifndef _GLIBCXX_DEBUG_SAFE_SEQUENCE_H
30#define _GLIBCXX_DEBUG_SAFE_SEQUENCE_H 1
43 template<
typename _Type>
59 template <
typename _Type>
75 template<
typename _Iterator>
110 template<
typename _Sequence>
113 template<
typename _Predicate>
122 template<
typename _Predicate>
123 _GLIBCXX20_CONSTEXPR
void
136 template<
typename _Predicate>
139 _Predicate __pred)
const;
144 template<
typename _Sequence>
149#if __cplusplus >= 201103L
158 __x._M_invalidate_all();
171 _GLIBCXX20_CONSTEXPR
void
177 typedef typename _Sequence::const_iterator _Const_iterator;
178 typedef typename _Const_iterator::iterator_type _Base_const_iterator;
180 const _Sequence& __seq = *
static_cast<const _Sequence*
>(
this);
constexpr bool __is_constant_evaluated() noexcept
constexpr _Iterator __base(_Iterator __it)
GNU debug classes for public use.
Traits class for iterators.
void _M_invalidate_if_impl(_Predicate __pred) const
constexpr void _M_invalidate_if(_Predicate __pred) const
void _M_transfer_from_if(const _Safe_sequence &__from, _Predicate __pred) const
Base class for constructing a safe sequence type that tracks iterators that reference it.
constexpr _Safe_sequence_base() noexcept
bool operator()(const _Type &__x) const
constexpr _Not_equal_to(const _Type &__v)
_Base_const_iterator __value
constexpr _Equal_to(const _Type &__v)
bool operator()(const _Type &__x) const
_Base_const_iterator __value
bool operator()(const _Iterator &__x) const
std::iterator_traits< _Iterator >::difference_type difference_type
constexpr _After_nth_from(const difference_type &__n, const _Iterator &__base)
_Safe_node_sequence(_Safe_node_sequence &&)=default
constexpr _Safe_node_sequence & operator=(const _Safe_node_sequence &) noexcept
constexpr void _M_invalidate_all() const
constexpr _Safe_node_sequence & operator=(_Safe_node_sequence &&__x) noexcept
_Safe_node_sequence(_Safe_node_sequence const &)=default
_Safe_node_sequence()=default
Like _Safe_sequence but with a special _M_invalidate_all implementation not invalidating past-the-end...