diff --git a/libcxx/include/__debug b/libcxx/include/__debug --- a/libcxx/include/__debug +++ b/libcxx/include/__debug @@ -116,7 +116,7 @@ inline bool _C_node<_Cont>::__dereferenceable(const void* __i) const { - typedef typename _Cont::const_iterator iterator; + typedef typename _Cont::__debug_iterator iterator; const iterator* __j = static_cast(__i); _Cont* _Cp = static_cast<_Cont*>(__c_); return _Cp->__dereferenceable(__j); @@ -126,7 +126,7 @@ inline bool _C_node<_Cont>::__decrementable(const void* __i) const { - typedef typename _Cont::const_iterator iterator; + typedef typename _Cont::__debug_iterator iterator; const iterator* __j = static_cast(__i); _Cont* _Cp = static_cast<_Cont*>(__c_); return _Cp->__decrementable(__j); @@ -136,7 +136,7 @@ inline bool _C_node<_Cont>::__addable(const void* __i, ptrdiff_t __n) const { - typedef typename _Cont::const_iterator iterator; + typedef typename _Cont::__debug_iterator iterator; const iterator* __j = static_cast(__i); _Cont* _Cp = static_cast<_Cont*>(__c_); return _Cp->__addable(__j, __n); @@ -146,7 +146,7 @@ inline bool _C_node<_Cont>::__subscriptable(const void* __i, ptrdiff_t __n) const { - typedef typename _Cont::const_iterator iterator; + typedef typename _Cont::__debug_iterator iterator; const iterator* __j = static_cast(__i); _Cont* _Cp = static_cast<_Cont*>(__c_); return _Cp->__subscriptable(__j, __n); diff --git a/libcxx/include/__hash_table b/libcxx/include/__hash_table --- a/libcxx/include/__hash_table +++ b/libcxx/include/__hash_table @@ -1283,10 +1283,11 @@ #ifdef _LIBCPP_ENABLE_DEBUG_MODE - bool __dereferenceable(const const_iterator* __i) const; - bool __decrementable(const const_iterator* __i) const; - bool __addable(const const_iterator* __i, ptrdiff_t __n) const; - bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const; + using __debug_iterator = const_iterator; + bool __dereferenceable(const __debug_iterator* __i) const; + bool __decrementable(const __debug_iterator* __i) const; + bool __addable(const __debug_iterator* __i, ptrdiff_t __n) const; + bool __subscriptable(const __debug_iterator* __i, ptrdiff_t __n) const; #endif // _LIBCPP_ENABLE_DEBUG_MODE @@ -2667,28 +2668,28 @@ template bool -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__dereferenceable(const const_iterator* __i) const +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__dereferenceable(const __debug_iterator* __i) const { return __i->__node_ != nullptr; } template bool -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__decrementable(const const_iterator*) const +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__decrementable(const __debug_iterator*) const { return false; } template bool -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__addable(const const_iterator*, ptrdiff_t) const +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__addable(const __debug_iterator*, ptrdiff_t) const { return false; } template bool -__hash_table<_Tp, _Hash, _Equal, _Alloc>::__subscriptable(const const_iterator*, ptrdiff_t) const +__hash_table<_Tp, _Hash, _Equal, _Alloc>::__subscriptable(const __debug_iterator*, ptrdiff_t) const { return false; } diff --git a/libcxx/include/list b/libcxx/include/list --- a/libcxx/include/list +++ b/libcxx/include/list @@ -1077,10 +1077,11 @@ #ifdef _LIBCPP_ENABLE_DEBUG_MODE - bool __dereferenceable(const const_iterator* __i) const; - bool __decrementable(const const_iterator* __i) const; - bool __addable(const const_iterator* __i, ptrdiff_t __n) const; - bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const; + using __debug_iterator = const_iterator; + bool __dereferenceable(const __debug_iterator* __i) const; + bool __decrementable(const __debug_iterator* __i) const; + bool __addable(const __debug_iterator* __i, ptrdiff_t __n) const; + bool __subscriptable(const __debug_iterator* __i, ptrdiff_t __n) const; #endif // _LIBCPP_ENABLE_DEBUG_MODE @@ -2229,28 +2230,28 @@ template bool -list<_Tp, _Alloc>::__dereferenceable(const const_iterator* __i) const +list<_Tp, _Alloc>::__dereferenceable(const __debug_iterator* __i) const { return __i->__ptr_ != this->__end_as_link(); } template bool -list<_Tp, _Alloc>::__decrementable(const const_iterator* __i) const +list<_Tp, _Alloc>::__decrementable(const __debug_iterator* __i) const { return !empty() && __i->__ptr_ != base::__end_.__next_; } template bool -list<_Tp, _Alloc>::__addable(const const_iterator*, ptrdiff_t) const +list<_Tp, _Alloc>::__addable(const __debug_iterator*, ptrdiff_t) const { return false; } template bool -list<_Tp, _Alloc>::__subscriptable(const const_iterator*, ptrdiff_t) const +list<_Tp, _Alloc>::__subscriptable(const __debug_iterator*, ptrdiff_t) const { return false; } diff --git a/libcxx/include/string b/libcxx/include/string --- a/libcxx/include/string +++ b/libcxx/include/string @@ -1452,10 +1452,11 @@ #ifdef _LIBCPP_ENABLE_DEBUG_MODE - bool __dereferenceable(const const_iterator* __i) const; - bool __decrementable(const const_iterator* __i) const; - bool __addable(const const_iterator* __i, ptrdiff_t __n) const; - bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const; + using __debug_iterator = const_iterator; + bool __dereferenceable(const __debug_iterator* __i) const; + bool __decrementable(const __debug_iterator* __i) const; + bool __addable(const __debug_iterator* __i, ptrdiff_t __n) const; + bool __subscriptable(const __debug_iterator* __i, ptrdiff_t __n) const; #endif // _LIBCPP_ENABLE_DEBUG_MODE @@ -4599,7 +4600,7 @@ template bool -basic_string<_CharT, _Traits, _Allocator>::__dereferenceable(const const_iterator* __i) const +basic_string<_CharT, _Traits, _Allocator>::__dereferenceable(const __debug_iterator* __i) const { return data() <= std::__to_address(__i->base()) && std::__to_address(__i->base()) < data() + size(); @@ -4607,7 +4608,7 @@ template bool -basic_string<_CharT, _Traits, _Allocator>::__decrementable(const const_iterator* __i) const +basic_string<_CharT, _Traits, _Allocator>::__decrementable(const __debug_iterator* __i) const { return data() < std::__to_address(__i->base()) && std::__to_address(__i->base()) <= data() + size(); @@ -4615,7 +4616,7 @@ template bool -basic_string<_CharT, _Traits, _Allocator>::__addable(const const_iterator* __i, ptrdiff_t __n) const +basic_string<_CharT, _Traits, _Allocator>::__addable(const __debug_iterator* __i, ptrdiff_t __n) const { const value_type* __p = std::__to_address(__i->base()) + __n; return data() <= __p && __p <= data() + size(); @@ -4623,7 +4624,7 @@ template bool -basic_string<_CharT, _Traits, _Allocator>::__subscriptable(const const_iterator* __i, ptrdiff_t __n) const +basic_string<_CharT, _Traits, _Allocator>::__subscriptable(const __debug_iterator* __i, ptrdiff_t __n) const { const value_type* __p = std::__to_address(__i->base()) + __n; return data() <= __p && __p < data() + size(); diff --git a/libcxx/include/unordered_map b/libcxx/include/unordered_map --- a/libcxx/include/unordered_map +++ b/libcxx/include/unordered_map @@ -1514,13 +1514,14 @@ #ifdef _LIBCPP_ENABLE_DEBUG_MODE - bool __dereferenceable(const const_iterator* __i) const + using __debug_iterator = const_iterator; + bool __dereferenceable(const __debug_iterator* __i) const {return __table_.__dereferenceable(_VSTD::addressof(__i->__i_));} - bool __decrementable(const const_iterator* __i) const + bool __decrementable(const __debug_iterator* __i) const {return __table_.__decrementable(_VSTD::addressof(__i->__i_));} - bool __addable(const const_iterator* __i, ptrdiff_t __n) const + bool __addable(const __debug_iterator* __i, ptrdiff_t __n) const {return __table_.__addable(_VSTD::addressof(__i->__i_), __n);} - bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const + bool __subscriptable(const __debug_iterator* __i, ptrdiff_t __n) const {return __table_.__addable(_VSTD::addressof(__i->__i_), __n);} #endif // _LIBCPP_ENABLE_DEBUG_MODE diff --git a/libcxx/include/unordered_set b/libcxx/include/unordered_set --- a/libcxx/include/unordered_set +++ b/libcxx/include/unordered_set @@ -845,13 +845,14 @@ #ifdef _LIBCPP_ENABLE_DEBUG_MODE - bool __dereferenceable(const const_iterator* __i) const + using __debug_iterator = const_iterator; + bool __dereferenceable(const __debug_iterator* __i) const {return __table_.__dereferenceable(__i);} - bool __decrementable(const const_iterator* __i) const + bool __decrementable(const __debug_iterator* __i) const {return __table_.__decrementable(__i);} - bool __addable(const const_iterator* __i, ptrdiff_t __n) const + bool __addable(const __debug_iterator* __i, ptrdiff_t __n) const {return __table_.__addable(__i, __n);} - bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const + bool __subscriptable(const __debug_iterator* __i, ptrdiff_t __n) const {return __table_.__addable(__i, __n);} #endif // _LIBCPP_ENABLE_DEBUG_MODE diff --git a/libcxx/include/vector b/libcxx/include/vector --- a/libcxx/include/vector +++ b/libcxx/include/vector @@ -636,10 +636,11 @@ #ifdef _LIBCPP_ENABLE_DEBUG_MODE - bool __dereferenceable(const const_iterator* __i) const; - bool __decrementable(const const_iterator* __i) const; - bool __addable(const const_iterator* __i, ptrdiff_t __n) const; - bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const; + using __debug_iterator = const_iterator; + bool __dereferenceable(const __debug_iterator* __i) const; + bool __decrementable(const __debug_iterator* __i) const; + bool __addable(const __debug_iterator* __i, ptrdiff_t __n) const; + bool __subscriptable(const __debug_iterator* __i, ptrdiff_t __n) const; #endif // _LIBCPP_ENABLE_DEBUG_MODE