29 #ifndef _GLIBCXX_DEBUG_SAFE_CONTAINER_H    30 #define _GLIBCXX_DEBUG_SAFE_CONTAINER_H 1    37   template<
typename _SafeContainer,
    39            template<
typename> 
class _SafeBase,
    40            bool _IsCxx11AllocatorAware = 
true>
    42     : 
public _SafeBase<_SafeContainer>
    44       typedef _SafeBase<_SafeContainer> _Base;
    47       _M_cont() _GLIBCXX_NOEXCEPT
    48       { 
return *
static_cast<_SafeContainer*
>(
this); }
    52       _M_safe() _GLIBCXX_NOEXCEPT
    55 #if __cplusplus >= 201103L    63         if (__x._M_cont().get_allocator() == __a)
    66           __x._M_invalidate_all();
    75         this->_M_invalidate_all();
    79 #if __cplusplus >= 201103L    83         __glibcxx_check_self_move_assign(__x);
    85         if (_IsCxx11AllocatorAware)
    89             bool __xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
    90               || _M_cont().get_allocator() == __x._M_cont().get_allocator();
    94               this->_M_invalidate_all();
    99         __x._M_invalidate_all();
   106         if (_IsCxx11AllocatorAware)
   110             if (!_Alloc_traits::_S_propagate_on_swap())
   111               __glibcxx_check_equal_allocs(this->_M_cont()._M_base(),
   112                                            __x._M_cont()._M_base());
 Uniform interface to C++98 and C++11 allocators. 
 
GNU debug classes for public use. 
 
Safe class dealing with some allocator dependent operations.