__GNU_DEBUG::_SAFE_FORWARD_LIST(3cxx)
π NAME π
__gnu_debug::_Safe_forward_list< _SafeSequence > β okay bestie, this is the 3cxx manual page for the special-iterators swap-and-invalidation situation for forward_list, and it's literally all because of the before_begin iterator. Periodt. π
β¨ SYNOPSIS β¨
#include <forward_list>
Inherits __gnu_debug::_Safe_sequence< _SafeSequence >. Slay. π
π«Ά Public Member Functions
void _M_invalidate_if (_Predicate __pred)β the invalidate-if vibe check.void _M_transfer_from_if (_Safe_sequence &__from, _Predicate __pred)β the transfer-from-if situation.
π Public Attributes
_Safe_iterator_base * _M_const_iteratorsβ The list of constant iterators that reference this container. Iconic little registry. β¨_Safe_iterator_base * _M_iteratorsβ The list of mutable iterators that reference this container. Also iconic. πunsigned int _M_versionβ The container version number. This number may never be 0. No cap, never ever. π¨
π¦ Protected Member Functions
void _M_detach_all ()void _M_detach_singular ()__gnu_cxx::__mutex & _M_get_mutex () throw ()void _M_invalidate_all ()void _M_invalidate_all () constvoid _M_revalidate_singular ()void _M_swap (_Safe_sequence_base &) noexcept
πΈ Detailed Description πΈ
template<typename _SafeSequence>
class __gnu_debug::_Safe_forward_list< _SafeSequence >
Special iterators swap and invalidation for forward_list because of the before_begin iterator. That's the whole main character energy of this page, fr fr. π¦
π Member Function Documentation π
π§Ή void __gnu_debug::_Safe_sequence_base::_M_detach_all () β [protected], [inherited]
Detach all iterators, leaving them singular.
Referenced by __gnu_debug::_Safe_sequence_base::~_Safe_sequence_base().
π«§ void __gnu_debug::_Safe_sequence_base::_M_detach_singular () β [protected], [inherited]
Detach all singular iterators.
Postcondition: for all iterators i attached to this sequence, i->_M_version == _M_version.
π __gnu_cxx::__mutex & __gnu_debug::_Safe_sequence_base::_M_get_mutex () β [protected], [inherited]
For use in _Safe_sequence.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().
π₯ void __gnu_debug::_Safe_sequence_base::_M_invalidate_all () const β [inline], [protected], [inherited]
Invalidates all iterators.
References __gnu_debug::_Safe_sequence_base::_M_version.
π― void __gnu_debug::_Safe_sequence< _SafeSequence >::_M_invalidate_if (_Predicate __pred) β [inherited]
Invalidates all iterators x that reference this sequence, are not singular, and for which __pred(x) returns true. __pred will be invoked with the normal iterators nested in the safe ones.
π©Ή void __gnu_debug::_Safe_sequence_base::_M_revalidate_singular () β [protected], [inherited]
Revalidates all attached singular iterators. This method may be used to validate iterators that were invalidated before (but for some reason, such as an exception, need to become valid again).
π void __gnu_debug::_Safe_sequence< _SafeSequence >::_M_transfer_from_if (_Safe_sequence< _SafeSequence > & __from, _Predicate __pred) β [inherited]
Transfers all iterators x that reference from sequence, are not singular, and for which __pred(x) returns true. __pred will be invoked with the normal iterators nested in the safe ones.
π Member Data Documentation π
_Safe_iterator_base* __gnu_debug::_Safe_sequence_base::_M_const_iteratorsβ[inherited]β The list of constant iterators that reference this container.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().
_Safe_iterator_base* __gnu_debug::_Safe_sequence_base::_M_iteratorsβ[inherited]β The list of mutable iterators that reference this container.
Referenced by __gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if().
unsigned int __gnu_debug::_Safe_sequence_base::_M_versionβ[mutable],[inherited]β The container version number. This number may never be 0.
Referenced by __gnu_debug::_Safe_sequence_base::_M_invalidate_all(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=(), __gnu_debug::_Safe_iterator< _Iterator, _Sequence, _Category >::operator=(), and __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=().
β Author β
Generated automatically by Doxygen for libstdc++ from the source code. Not me writing this by hand at 2 a.m., obviously. π
Cute lil sign-off: the source/version islibstdc++, the manual section is3cxx, and the date slot is giving mysterious timeless energy. Bye bestie, drink water and keep your iterators valid πππ«Ά
π¦ where this page comes from
- ubuntu noble: libstdc++-13-doc 13.2.0-23ubuntu4
- ubuntu noble: libstdc++-13-doc 13.3.0-6ubuntu2~24.04.1
- ubuntu noble: libstdc++-14-doc 14-20240412-0ubuntu1
- ubuntu noble: libstdc++-14-doc 14.2.0-4ubuntu2~24.04.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms