|
| _Safe_local_iterator () |
|
| _Safe_local_iterator (const _Iterator &__i, size_type __bucket, const _Sequence *__seq) |
| Safe iterator construction from an unsafe iterator and its sequence. More...
|
|
| _Safe_local_iterator (const _Safe_local_iterator &__x) |
| Copy construction. More...
|
|
template<typename _MutableIterator > |
| _Safe_local_iterator (const _Safe_local_iterator< _MutableIterator, typename __gnu_cxx::__enable_if< std::__are_same< _MutableIterator, typename _Sequence::local_iterator::iterator_type >::__value, _Sequence >::__type > &__x) |
| Converting constructor from a mutable iterator to a constant iterator. More...
|
|
_Safe_local_iterator & | operator= (const _Safe_local_iterator &__x) |
| Copy assignment. More...
|
|
reference | operator* () const |
| Iterator dereference. More...
|
|
pointer | operator-> () const |
| Iterator dereference. More...
|
|
_Safe_local_iterator & | operator++ () |
| Iterator preincrement. More...
|
|
_Safe_local_iterator | operator++ (int) |
| Iterator postincrement. More...
|
|
_Iterator | base () const |
| Return the underlying iterator. More...
|
|
size_type | bucket () const |
| Return the bucket. More...
|
|
| operator _Iterator () const |
| Conversion to underlying non-debug iterator to allow better interaction with non-debug containers. More...
|
|
void | _M_attach (_Safe_sequence_base *__seq) |
|
void | _M_attach_single (_Safe_sequence_base *__seq) |
|
bool | _M_dereferenceable () const |
| Is the iterator dereferenceable? More...
|
|
bool | _M_incrementable () const |
| Is the iterator incrementable? More...
|
|
template<typename _Other > |
bool | _M_valid_range (const _Safe_local_iterator< _Other, _Sequence > &__rhs) const |
|
const _Sequence * | _M_get_sequence () const |
|
bool | _M_is_begin () const |
| Is this iterator equal to the sequence's begin() iterator? More...
|
|
bool | _M_is_end () const |
| Is this iterator equal to the sequence's end() iterator? More...
|
|
template<typename _Other > |
bool | _M_in_same_bucket (const _Safe_local_iterator< _Other, _Sequence > &__other) const |
| Is this iterator part of the same bucket as the other one? More...
|
|
void | _M_attach (_Safe_sequence_base *__seq, bool __constant) |
|
void | _M_attach_single (_Safe_sequence_base *__seq, bool __constant) throw () |
|
void | _M_detach () |
|
void | _M_detach_single () throw () |
|
void | _M_attach (_Safe_sequence_base *__seq, bool __constant) |
|
void | _M_attach_single (_Safe_sequence_base *__seq, bool __constant) throw () |
|
void | _M_detach () |
|
void | _M_detach_single () throw () |
|
bool | _M_attached_to (const _Safe_sequence_base *__seq) const |
|
_GLIBCXX_PURE bool | _M_singular () const throw () |
|
_GLIBCXX_PURE bool | _M_can_compare (const _Safe_iterator_base &__x) const throw () |
|
void | _M_invalidate () |
|
void | _M_reset () throw () |
|
void | _M_unlink () throw () |
|
template<typename _Iterator, typename _Sequence>
class __gnu_debug::_Safe_local_iterator< _Iterator, _Sequence >
Safe iterator wrapper.
The class template _Safe_local_iterator is a wrapper around an iterator that tracks the iterator's movement among sequences and checks that operations performed on the "safe" iterator are legal. In additional to the basic iterator operations (which are validated, and then passed to the underlying iterator), _Safe_local_iterator has member functions for iterator invalidation, attaching/detaching the iterator from sequences, and querying the iterator's state.