Go to the documentation of this file.
29 #ifndef _GLIBCXX_DEBUG_SAFE_BASE_H
30 #define _GLIBCXX_DEBUG_SAFE_BASE_H 1
36 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;
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())
271 #if __cplusplus >= 201103L
272 _GLIBCXX20_CONSTEXPR _Safe_sequence_base&
273 operator=(_Safe_sequence_base&& __x) noexcept
276 __x._M_invalidate_all();
306 _M_swap(
const _Safe_sequence_base& __x)
const _GLIBCXX_USE_NOEXCEPT;
313 _GLIBCXX20_CONSTEXPR
void
318 #if !_GLIBCXX_INLINE_VERSION
345 bool __constant)
const _GLIBCXX_USE_NOEXCEPT;
constexpr void _M_invalidate_all() const
_Safe_iterator_base * _M_const_iterators
The list of constant iterators that reference this container.
_Safe_iterator_base * _M_next
unsigned int _M_version
The container version number. This number may never be 0.
void _M_detach_single() noexcept
void _M_detach_all() const
void _M_attach(const _Safe_sequence_base *__seq, bool __constant)
void _M_unlink() noexcept
bool _M_singular() const noexcept
void _M_swap(const _Safe_sequence_base &__x) const noexcept
void _M_attach_single(const _Safe_sequence_base *__seq, bool __constant) noexcept
void _M_detach_singular() const
bool _M_attached_to(const _Safe_sequence_base *__seq) const
__gnu_cxx::__mutex & _M_get_mutex() noexcept
GNU debug classes for public use.
constexpr ~_Safe_sequence_base() noexcept
const _Safe_sequence_base * _M_sequence
Base class that supports tracking of iterators that reference a sequence.
_Safe_iterator_base * _M_iterators
The list of mutable iterators that reference this container.
__gnu_cxx::__mutex & _M_get_mutex() const noexcept
constexpr _Safe_iterator_base()
void _M_revalidate_singular() const
constexpr _Safe_iterator_base(const _Safe_iterator_base &__x, bool __constant)
bool __check_singular_aux(const _Safe_iterator_base *__x)
constexpr _Safe_iterator_base(const _Safe_sequence_base *__seq, bool __constant)
bool _M_can_compare(const _Safe_iterator_base &__x) const noexcept
_Safe_iterator_base * _M_prior
Basic functionality for a safe iterator.