29 #ifndef _GLIBCXX_DEBUG_SAFE_SEQUENCE_TCC 
   30 #define _GLIBCXX_DEBUG_SAFE_SEQUENCE_TCC 1 
   34   template<
typename _Sequence>
 
   35     template<
typename _Predicate>
 
   40         typedef typename _Sequence::iterator iterator;
 
   41         typedef typename _Sequence::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();
 
   65   template<
typename _Sequence>
 
   66     template<
typename _Predicate>
 
   71         typedef typename _Sequence::iterator iterator;
 
   72         typedef typename _Sequence::const_iterator const_iterator;
 
   84           iterator* __victim = 
static_cast<iterator*
>(__iter);
 
   85           __iter = __iter->_M_next;
 
   86           if (!__victim->_M_singular() && __pred(__victim->base()))
 
   88           __victim->_M_detach_single();
 
   89           if (__transfered_iterators)
 
   91               __victim->_M_next = __transfered_iterators;
 
   92               __transfered_iterators->
_M_prior = __victim;
 
   95             __last_iterator = __victim;
 
   98           __transfered_iterators = __victim;
 
  105           const_iterator* __victim = 
static_cast<const_iterator*
>(__iter2);
 
  107           if (!__victim->_M_singular() && __pred(__victim->base()))
 
  110           if (__transfered_const_iterators)
 
  112               __victim->_M_next = __transfered_const_iterators;
 
  113               __transfered_const_iterators->
_M_prior = __victim;
 
  116             __last_const_iterator = __victim;
 
  119           __transfered_const_iterators = __victim;
 
  125     if (__last_iterator || __last_const_iterator)
 
  130         if (this->_M_iterators)
 
  132             this->_M_iterators->_M_prior = __last_iterator;
 
  133             __last_iterator->
_M_next = this->_M_iterators;
 
  135         this->_M_iterators = __transfered_iterators;
 
  137         if (__last_const_iterator)
 
  139         if (this->_M_const_iterators)
 
  141             this->_M_const_iterators->
_M_prior = __last_const_iterator;
 
  142             __last_const_iterator->
_M_next = this->_M_const_iterators;
 
  144         this->_M_const_iterators = __transfered_const_iterators;
 
void _M_invalidate_if(_Predicate __pred)
 
_Safe_iterator_base * _M_prior
 
_Safe_iterator_base * _M_const_iterators
The list of constant iterators that reference this container. 
 
_Safe_iterator_base * _M_next
 
unsigned int _M_version
The container version number. This number may never be 0. 
 
void _M_transfer_from_if(_Safe_sequence &__from, _Predicate __pred)
 
_Safe_sequence_base * _M_sequence
 
Basic functionality for a safe iterator. 
 
_Safe_iterator_base * _M_iterators
The list of mutable iterators that reference this container. 
 
__gnu_cxx::__mutex & _M_get_mutex()
 
Base class for constructing a safe sequence type that tracks iterators that reference it...