.TH "__gnu_debug::_Safe_unordered_container_base" 3cxx "libstdc++" \" -*- nroff -*- .ad l .nh .SH NAME __gnu_debug::_Safe_unordered_container_base \- Base class that supports tracking of local iterators that reference an unordered container\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fB__gnu_debug::_Safe_sequence_base\fP\&. .PP Inherited by \fB__gnu_debug::_Safe_unordered_container< _Container >\fP\&. .SS "Public Attributes" .in +1c .ti -1c .RI "\fB_Safe_iterator_base\fP * \fB_M_const_iterators\fP" .br .RI "The list of constant iterators that reference this container\&. " .ti -1c .RI "\fB_Safe_iterator_base\fP * \fB_M_const_local_iterators\fP" .br .RI "The list of constant local iterators that reference this container\&. " .ti -1c .RI "\fB_Safe_iterator_base\fP * \fB_M_iterators\fP" .br .RI "The list of mutable iterators that reference this container\&. " .ti -1c .RI "\fB_Safe_iterator_base\fP * \fB_M_local_iterators\fP" .br .RI "The list of mutable local iterators that reference this container\&. " .ti -1c .RI "unsigned int \fB_M_version\fP" .br .RI "The container version number\&. This number may never be 0\&. " .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fB_Safe_unordered_container_base\fP (\fB_Safe_unordered_container_base\fP &&__x) noexcept" .br .ti -1c .RI "\fB_Safe_unordered_container_base\fP (const \fB_Safe_unordered_container_base\fP &) noexcept" .br .ti -1c .RI "\fB~_Safe_unordered_container_base\fP () noexcept" .br .ti -1c .RI "void \fB_M_detach_all\fP ()" .br .ti -1c .RI "void \fB_M_detach_singular\fP ()" .br .ti -1c .RI "__gnu_cxx::__mutex & \fB_M_get_mutex\fP () throw ()" .br .ti -1c .RI "void \fB_M_invalidate_all\fP () const" .br .ti -1c .RI "void \fB_M_revalidate_singular\fP ()" .br .ti -1c .RI "void \fB_M_swap\fP (\fB_Safe_sequence_base\fP &__x) noexcept" .br .ti -1c .RI "void \fB_M_swap\fP (\fB_Safe_unordered_container_base\fP &__x) noexcept" .br .in -1c .SS "Friends" .in +1c .ti -1c .RI "class \fB_Safe_local_iterator_base\fP" .br .in -1c .SH "Detailed Description" .PP Base class that supports tracking of local iterators that reference an unordered container\&. The _Safe_unordered_container_base class provides basic support for tracking iterators into an unordered container\&. Containers that track iterators must derived from _Safe_unordered_container_base publicly, so that safe iterators (which inherit _Safe_iterator_base) can attach to them\&. This class contains four linked lists of iterators, one for constant iterators, one for mutable iterators, one for constant local iterators, one for mutable local iterators and a version number that allows very fast invalidation of all iterators that reference the container\&. .PP This class must ensure that no operation on it may throw an exception, otherwise \fIsafe\fP containers may fail to provide the exception-safety guarantees required by the C++ standard\&. .PP Definition at line \fB120\fP of file \fBsafe_unordered_base\&.h\fP\&. .SH "Constructor & Destructor Documentation" .PP .SS "__gnu_debug::_Safe_unordered_container_base::_Safe_unordered_container_base ()\fC [inline]\fP, \fC [protected]\fP, \fC [noexcept]\fP" .PP Definition at line \fB134\fP of file \fBsafe_unordered_base\&.h\fP\&. .SS "__gnu_debug::_Safe_unordered_container_base::_Safe_unordered_container_base (const \fB_Safe_unordered_container_base\fP &)\fC [inline]\fP, \fC [protected]\fP, \fC [noexcept]\fP" .PP Definition at line \fB139\fP of file \fBsafe_unordered_base\&.h\fP\&. .SS "__gnu_debug::_Safe_unordered_container_base::_Safe_unordered_container_base (\fB_Safe_unordered_container_base\fP && __x)\fC [inline]\fP, \fC [protected]\fP, \fC [noexcept]\fP" .PP Definition at line \fB144\fP of file \fBsafe_unordered_base\&.h\fP\&. .SS "__gnu_debug::_Safe_unordered_container_base::~_Safe_unordered_container_base ()\fC [inline]\fP, \fC [protected]\fP, \fC [noexcept]\fP" Notify all iterators that reference this container that the container is being destroyed\&. .PP Definition at line \fB151\fP of file \fBsafe_unordered_base\&.h\fP\&. .SH "Member Function Documentation" .PP .SS "void __gnu_debug::_Safe_unordered_container_base::_M_detach_all ()\fC [protected]\fP" Detach all iterators, leaving them singular\&. .SS "void __gnu_debug::_Safe_sequence_base::_M_detach_singular ()\fC [protected]\fP, \fC [inherited]\fP" Detach all singular iterators\&. .PP \fBPostcondition\fP .RS 4 for all iterators i attached to this sequence, i->_M_version == _M_version\&. .RE .PP .SS "__gnu_cxx::__mutex & __gnu_debug::_Safe_sequence_base::_M_get_mutex ()\fC [protected]\fP, \fC [inherited]\fP" For use in _Safe_sequence\&. .PP Referenced by \fB__gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if()\fP\&. .SS "void __gnu_debug::_Safe_sequence_base::_M_invalidate_all () const\fC [inline]\fP, \fC [protected]\fP, \fC [inherited]\fP" Invalidates all iterators\&. .PP Definition at line \fB256\fP of file \fBsafe_base\&.h\fP\&. .PP References \fB__gnu_debug::_Safe_sequence_base::_M_version\fP\&. .SS "void __gnu_debug::_Safe_sequence_base::_M_revalidate_singular ()\fC [protected]\fP, \fC [inherited]\fP" 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)\&. .SS "void __gnu_debug::_Safe_sequence_base::_M_swap (\fB_Safe_sequence_base\fP & __x)\fC [protected]\fP, \fC [noexcept]\fP, \fC [inherited]\fP" Swap this sequence with the given sequence\&. This operation also swaps ownership of the iterators, so that when the operation is complete all iterators that originally referenced one container now reference the other container\&. .SS "void __gnu_debug::_Safe_unordered_container_base::_M_swap (\fB_Safe_unordered_container_base\fP & __x)\fC [protected]\fP, \fC [noexcept]\fP" Swap this container with the given container\&. This operation also swaps ownership of the iterators, so that when the operation is complete all iterators that originally referenced one container now reference the other container\&. .SH "Friends And Related Symbol Documentation" .PP .SS "friend class \fB_Safe_local_iterator_base\fP\fC [friend]\fP" .PP Definition at line \fB122\fP of file \fBsafe_unordered_base\&.h\fP\&. .SH "Member Data Documentation" .PP .SS "\fB_Safe_iterator_base\fP* __gnu_debug::_Safe_sequence_base::_M_const_iterators\fC [inherited]\fP" .PP The list of constant iterators that reference this container\&. .PP Definition at line \fB197\fP of file \fBsafe_base\&.h\fP\&. .PP Referenced by \fB__gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if()\fP\&. .SS "\fB_Safe_iterator_base\fP* __gnu_debug::_Safe_unordered_container_base::_M_const_local_iterators" .PP The list of constant local iterators that reference this container\&. .PP Definition at line \fB130\fP of file \fBsafe_unordered_base\&.h\fP\&. .SS "\fB_Safe_iterator_base\fP* __gnu_debug::_Safe_sequence_base::_M_iterators\fC [inherited]\fP" .PP The list of mutable iterators that reference this container\&. .PP Definition at line \fB194\fP of file \fBsafe_base\&.h\fP\&. .PP Referenced by \fB__gnu_debug::_Safe_sequence< _Sequence >::_M_transfer_from_if()\fP\&. .SS "\fB_Safe_iterator_base\fP* __gnu_debug::_Safe_unordered_container_base::_M_local_iterators" .PP The list of mutable local iterators that reference this container\&. .PP Definition at line \fB127\fP of file \fBsafe_unordered_base\&.h\fP\&. .SS "unsigned int __gnu_debug::_Safe_sequence_base::_M_version\fC [mutable]\fP, \fC [inherited]\fP" .PP The container version number\&. This number may never be 0\&. .PP Definition at line \fB200\fP of file \fBsafe_base\&.h\fP\&. .PP Referenced by \fB__gnu_debug::_Safe_sequence_base::_M_invalidate_all()\fP, and \fB__gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >::operator=()\fP\&. .SH "Author" .PP Generated automatically by Doxygen for libstdc++ from the source code\&.