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;
46 iterator* __victim =
static_cast<iterator*
>(__iter);
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();
void _M_invalidate_local_if(_Predicate __pred)
void _M_invalidate_if(_Predicate __pred)
Basic functionality for a safe iterator.