29#ifndef _GLIBCXX_DEBUG_SAFE_BASE_H
30#define _GLIBCXX_DEBUG_SAFE_BASE_H 1
52 friend class _Safe_sequence_base;
94 if (!std::__is_constant_evaluated())
95 this->
_M_attach(
const_cast<_Safe_sequence_base*
>(__seq), __constant);
105 if (!std::__is_constant_evaluated())
112 if (!std::__is_constant_evaluated())
202 class _Safe_sequence_base
204 friend class _Safe_iterator_base;
219 _Safe_sequence_base() _GLIBCXX_NOEXCEPT
223#if __cplusplus >= 201103L
230 _Safe_sequence_base(_Safe_sequence_base&& __seq) noexcept
231 : _Safe_sequence_base()
233 if (!std::__is_constant_evaluated())
243 if (!std::__is_constant_evaluated())
272 _M_swap(_Safe_sequence_base& __x) _GLIBCXX_USE_NOEXCEPT;
GNU debug classes for public use.
Basic functionality for a safe iterator.
_Safe_sequence_base * _M_sequence
constexpr _Safe_iterator_base(const _Safe_sequence_base *__seq, bool __constant)
__gnu_cxx::__mutex & _M_get_mutex()
void _M_attach_single(_Safe_sequence_base *__seq, bool __constant)
void _M_attach(_Safe_sequence_base *__seq, bool __constant)
constexpr _Safe_iterator_base()
bool _M_attached_to(const _Safe_sequence_base *__seq) const
_Safe_iterator_base * _M_prior
bool _M_can_compare(const _Safe_iterator_base &__x) const
_Safe_iterator_base * _M_next
constexpr _Safe_iterator_base(const _Safe_iterator_base &__x, bool __constant)
Base class that supports tracking of iterators that reference a sequence.
void _M_swap(_Safe_sequence_base &__x) noexcept
void _M_invalidate_all() const
_Safe_iterator_base * _M_const_iterators
The list of constant iterators that reference this container.
__gnu_cxx::__mutex & _M_get_mutex()
void _M_revalidate_singular()
_Safe_iterator_base * _M_iterators
The list of mutable iterators that reference this container.
void _M_detach_singular()
constexpr ~_Safe_sequence_base()
unsigned int _M_version
The container version number. This number may never be 0.