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 __iter = __iter->_M_next;
47 if (!__victim->_M_singular() && __pred(__victim->base()))
49 __victim->_M_invalidate();
55 const_iterator* __victim =
static_cast<const_iterator*
>(__iter2);
56 __iter2 = __iter2->_M_next;
57 if (!__victim->_M_singular() && __pred(__victim->base()))
59 __victim->_M_invalidate();
65 template<
typename _Container>
66 template<
typename _Predicate>
71 typedef typename _Container::local_iterator local_iterator;
72 typedef typename _Container::const_local_iterator const_local_iterator;
76 local_iterator* __victim =
static_cast<local_iterator*
>(__iter);
77 __iter = __iter->_M_next;
78 if (!__victim->_M_singular() && __pred(__victim->base()))
80 __victim->_M_invalidate();
86 const_local_iterator* __victim =
87 static_cast<const_local_iterator*
>(__iter2);
88 __iter2 = __iter2->_M_next;
89 if (!__victim->_M_singular() && __pred(__victim->base()))
91 __victim->_M_invalidate();
GNU debug classes for public use.
Basic functionality for a safe iterator.
Base class for constructing a safe unordered container type that tracks iterators that reference it.