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>
37 _Safe_unordered_container<_Container>::
40 typedef typename _Container::iterator iterator;
41 typedef typename _Container::const_iterator const_iterator;
43 for (_Safe_iterator_base* __iter = _M_iterators; __iter;)
45 iterator* __victim =
static_cast<iterator*
>(__iter);
46 __iter = __iter->_M_next;
47 if (!__victim->_M_singular() && __pred(__victim->base()))
49 __victim->_M_invalidate();
53 for (_Safe_iterator_base* __iter2 = _M_const_iterators; __iter2;)
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>
68 _Safe_unordered_container<_Container>::
71 typedef typename _Container::local_iterator local_iterator;
72 typedef typename _Container::const_local_iterator const_local_iterator;
74 for (_Safe_iterator_base* __iter = _M_local_iterators; __iter;)
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();
84 for (_Safe_iterator_base* __iter2 = _M_const_local_iterators; __iter2;)
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.