29 #ifndef _GLIBCXX_DEBUG_SAFE_UNORDERED_CONTAINER_H
30 #define _GLIBCXX_DEBUG_SAFE_UNORDERED_CONTAINER_H 1
57 template<
typename _Container>
63 {
return *
static_cast<_Container*
>(
this); }
67 _M_invalidate_locals()
69 auto __local_end = _M_cont()._M_base().end(0);
71 [__local_end](__decltype(_M_cont()._M_base().
cend(0)) __it)
72 {
return __it != __local_end; });
78 auto __end = _M_cont()._M_base().end();
80 [__end](__decltype(_M_cont()._M_base().
cend()) __it)
81 {
return __it != __end; });
82 _M_invalidate_locals();
89 template<
typename _Predicate>
97 template<
typename _Predicate>
enable_if< ::__array_traits< _Tp, _Nm >::_Is_swappable::value >::type noexcept(noexcept(__one.swap(__two)))
swap
void _M_invalidate_local_if(_Predicate __pred)
constexpr auto cend(const _Container &__cont) noexcept(noexcept(std::end(__cont))) -> decltype(std::end(__cont))
Return an iterator pointing to one past the last element of the const container.
Base class that supports tracking of local iterators that reference an unordered container.
void _M_invalidate_if(_Predicate __pred)
Base class for constructing a safe unordered container type that tracks iterators that reference it...