libstdc++
__gnu_debug::_Safe_forward_list< _SafeSequence > Class Template Reference

#include <forward_list>

Inheritance diagram for __gnu_debug::_Safe_forward_list< _SafeSequence >:
[legend]

Public Member Functions

void _M_invalidate_if (_Predicate __pred)
void _M_transfer_from_if (_Safe_sequence &__from, _Predicate __pred)

Public Attributes

_Safe_iterator_base_M_const_iterators
_Safe_iterator_base_M_iterators
unsigned int _M_version

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 () const
void _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.

Definition at line 58 of file debug/forward_list.

Member Function Documentation

◆ _M_detach_all()

Detach all iterators, leaving them singular.

◆ _M_detach_singular()

Detach all singular iterators.

Postcondition
for all iterators i attached to this sequence, i->_M_version == _M_version.

◆ _M_get_mutex()

__gnu_cxx::__mutex & __gnu_debug::_Safe_sequence_base::_M_get_mutex ( )
throw ( )
protectedinherited

For use in _Safe_sequence.

◆ _M_invalidate_all() [1/2]

template<typename _SafeSequence>
void __gnu_debug::_Safe_forward_list< _SafeSequence >::_M_invalidate_all ( )
inlineprotected

Definition at line 75 of file debug/forward_list.

◆ _M_invalidate_all() [2/2]

void __gnu_debug::_Safe_sequence_base::_M_invalidate_all ( ) const
inlineprotectedinherited

Invalidates all iterators.

Definition at line 280 of file safe_base.h.

◆ _M_invalidate_if()

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.

Definition at line 117 of file safe_sequence.tcc.

References __gnu_debug::_Safe_iterator_base::_M_next, and __gnu_debug::_Safe_iterator_base::_M_prior.

◆ _M_revalidate_singular()

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).

◆ _M_swap()

template<typename _SafeSequence>
void __gnu_debug::_Safe_forward_list< _SafeSequence >::_M_swap ( _Safe_sequence_base & __other)
protectednoexcept

Definition at line 161 of file debug/forward_list.

◆ _M_transfer_from_if()

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.

Definition at line 125 of file safe_sequence.tcc.

Member Data Documentation

◆ _M_const_iterators

The list of constant iterators that reference this container.

Definition at line 211 of file safe_base.h.

◆ _M_iterators

The list of mutable iterators that reference this container.

Definition at line 208 of file safe_base.h.

◆ _M_version

unsigned int __gnu_debug::_Safe_sequence_base::_M_version
mutableinherited

The container version number. This number may never be 0.

Definition at line 214 of file safe_base.h.


The documentation for this class was generated from the following file: