29#ifndef _GLIBCXX_DEBUG_SAFE_UNORDERED_CONTAINER_TCC
30#define _GLIBCXX_DEBUG_SAFE_UNORDERED_CONTAINER_TCC 1
34 template<
typename _Container>
35 template<
typename _Predicate>
40 typedef typename _Container::iterator
iterator;
41 typedef typename _Container::const_iterator const_iterator;
47 __iter = __iter->_M_next;
48 if (!__victim->_M_singular() && __pred(__victim->base()))
50 __victim->_M_invalidate();
56 const_iterator* __victim =
static_cast<const_iterator*
>(__iter2);
57 __iter2 = __iter2->_M_next;
58 if (!__victim->_M_singular() && __pred(__victim->base()))
60 __victim->_M_invalidate();
66 template<
typename _Container>
67 template<
typename _Predicate>
72 typedef typename _Container::local_iterator local_iterator;
73 typedef typename _Container::const_local_iterator const_local_iterator;
78 local_iterator* __victim =
static_cast<local_iterator*
>(__iter);
79 __iter = __iter->_M_next;
80 if (!__victim->_M_singular() && __pred(__victim->base()))
82 __victim->_M_invalidate();
88 const_local_iterator* __victim =
89 static_cast<const_local_iterator*
>(__iter2);
90 __iter2 = __iter2->_M_next;
91 if (!__victim->_M_singular() && __pred(__victim->base()))
93 __victim->_M_invalidate();
GNU debug classes for public use.
Basic functionality for a safe iterator.
_Safe_iterator_base * _M_const_iterators
The list of constant iterators that reference this container.
_Safe_iterator_base * _M_iterators
The list of mutable iterators that reference this container.
__gnu_cxx::__mutex & _M_get_mutex() const noexcept
_Safe_iterator_base * _M_const_local_iterators
The list of constant local iterators that reference this container.
_Safe_iterator_base * _M_local_iterators
The list of mutable local iterators that reference this container.
void _M_invalidate_local_if(_Predicate __pred)
void _M_invalidate_if(_Predicate __pred)