29#ifndef _GLIBCXX_DEBUG_SAFE_BASE_H
30#define _GLIBCXX_DEBUG_SAFE_BASE_H 1
52 friend class _Safe_sequence_base;
96 if (!std::__is_constant_evaluated())
107 if (!std::__is_constant_evaluated())
114 if (!std::__is_constant_evaluated())
128 _M_attach(const _Safe_sequence_base* __seq,
bool __constant);
133 bool __constant) _GLIBCXX_USE_NOEXCEPT;
141#if !_GLIBCXX_INLINE_VERSION
146 _M_attach(_Safe_sequence_base* __seq,
bool __constant);
150 bool __constant) _GLIBCXX_USE_NOEXCEPT;
218 class _Safe_sequence_base
220 friend class _Safe_iterator_base;
235 _Safe_sequence_base() _GLIBCXX_NOEXCEPT
239#if __cplusplus >= 201103L
246 _Safe_sequence_base(_Safe_sequence_base&& __seq) noexcept
247 : _Safe_sequence_base()
249 if (!std::__is_constant_evaluated())
259 if (!std::__is_constant_evaluated())
288 _M_swap(
const _Safe_sequence_base& __x)
const _GLIBCXX_USE_NOEXCEPT;
300#if !_GLIBCXX_INLINE_VERSION
327 bool __constant)
const _GLIBCXX_USE_NOEXCEPT;
GNU debug classes for public use.
Basic functionality for a safe iterator.
constexpr _Safe_iterator_base(const _Safe_sequence_base *__seq, bool __constant)
void _M_unlink() noexcept
void _M_detach_single() noexcept
bool _M_singular() const noexcept
__gnu_cxx::__mutex & _M_get_mutex() noexcept
constexpr _Safe_iterator_base()
bool _M_attached_to(const _Safe_sequence_base *__seq) const
const _Safe_sequence_base * _M_sequence
bool _M_can_compare(const _Safe_iterator_base &__x) const noexcept
_Safe_iterator_base * _M_prior
_Safe_iterator_base * _M_next
void _M_attach(const _Safe_sequence_base *__seq, bool __constant)
void _M_attach_single(const _Safe_sequence_base *__seq, bool __constant) noexcept
constexpr _Safe_iterator_base(const _Safe_iterator_base &__x, bool __constant)
Base class that supports tracking of iterators that reference a sequence.
void _M_detach_singular() const
void _M_swap(const _Safe_sequence_base &__x) const noexcept
void _M_invalidate_all() const
_Safe_iterator_base * _M_const_iterators
The list of constant iterators that reference this container.
void _M_revalidate_singular() const
_Safe_iterator_base * _M_iterators
The list of mutable iterators that reference this container.
__gnu_cxx::__mutex & _M_get_mutex() const noexcept
void _M_detach_all() const
constexpr ~_Safe_sequence_base()
unsigned int _M_version
The container version number. This number may never be 0.