[libc++] NFCI: Simplify macro definitions for the debug mode
The debug mode always had three possibilities: - _LIBCPP_DEBUG is undefined => no assertions - _LIBCPP_DEBUG == 0 => some assertions - _LIBCPP_DEBUG == 1 => some assertions + iterator checks This was documented that way, however the code did not make this clear at all. The discrepancy between _LIBCPP_DEBUG and _LIBCPP_DEBUG_LEVEL was especially confusing. I reworked how the various macros are defined without changing anything else to make the code clearer.
This commit is contained in:
@@ -885,21 +885,23 @@ typedef unsigned int char32_t;
|
||||
# define _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(x)
|
||||
#endif // _LIBCPP_HAS_NO_STRONG_ENUMS
|
||||
|
||||
#ifdef _LIBCPP_DEBUG
|
||||
# if _LIBCPP_DEBUG == 0
|
||||
# define _LIBCPP_DEBUG_LEVEL 1
|
||||
# elif _LIBCPP_DEBUG == 1
|
||||
# define _LIBCPP_DEBUG_LEVEL 2
|
||||
# else
|
||||
# error Supported values for _LIBCPP_DEBUG are 0 and 1
|
||||
# endif
|
||||
# if !defined(_LIBCPP_BUILDING_LIBRARY)
|
||||
# define _LIBCPP_EXTERN_TEMPLATE(...)
|
||||
# endif
|
||||
// _LIBCPP_DEBUG potential values:
|
||||
// - undefined: No assertions. This is the default.
|
||||
// - 0: Basic assertions
|
||||
// - 1: Basic assertions + iterator validity checks.
|
||||
#if !defined(_LIBCPP_DEBUG)
|
||||
# define _LIBCPP_DEBUG_LEVEL 0
|
||||
#elif _LIBCPP_DEBUG == 0
|
||||
# define _LIBCPP_DEBUG_LEVEL 1
|
||||
#elif _LIBCPP_DEBUG == 1
|
||||
# define _LIBCPP_DEBUG_LEVEL 2
|
||||
#else
|
||||
# error Supported values for _LIBCPP_DEBUG are 0 and 1
|
||||
#endif
|
||||
|
||||
#ifndef _LIBCPP_DEBUG_LEVEL
|
||||
# define _LIBCPP_DEBUG_LEVEL 0
|
||||
// _LIBCPP_DEBUG_LEVEL is always defined to one of [0, 1, 2] at this point
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 1
|
||||
# define _LIBCPP_DISABLE_EXTERN_TEMPLATE
|
||||
#endif
|
||||
|
||||
#ifdef _LIBCPP_DISABLE_EXTERN_TEMPLATE
|
||||
|
||||
@@ -27,26 +27,24 @@
|
||||
# include <cstddef>
|
||||
#endif
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 1 && !defined(_LIBCPP_ASSERT)
|
||||
# define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : \
|
||||
_VSTD::__libcpp_debug_function(_VSTD::__libcpp_debug_info(__FILE__, __LINE__, #x, m)))
|
||||
#endif
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#ifndef _LIBCPP_DEBUG_ASSERT
|
||||
#define _LIBCPP_DEBUG_ASSERT(x, m) _LIBCPP_ASSERT(x, m)
|
||||
#endif
|
||||
#define _LIBCPP_DEBUG_MODE(...) __VA_ARGS__
|
||||
#endif
|
||||
|
||||
#ifndef _LIBCPP_ASSERT
|
||||
# define _LIBCPP_ASSERT(x, m) ((void)0)
|
||||
#endif
|
||||
#ifndef _LIBCPP_DEBUG_ASSERT
|
||||
#if _LIBCPP_DEBUG_LEVEL == 0
|
||||
# define _LIBCPP_DEBUG_ASSERT(x, m) ((void)0)
|
||||
# define _LIBCPP_DEBUG_MODE(...) ((void)0)
|
||||
# define _LIBCPP_ASSERT_IMPL(x, m) ((void)0)
|
||||
#elif _LIBCPP_DEBUG_LEVEL == 1
|
||||
# define _LIBCPP_DEBUG_ASSERT(x, m) ((void)0)
|
||||
# define _LIBCPP_DEBUG_MODE(...) ((void)0)
|
||||
# define _LIBCPP_ASSERT_IMPL(x, m) ((x) ? (void)0 : _VSTD::__libcpp_debug_function(_VSTD::__libcpp_debug_info(__FILE__, __LINE__, #x, m)))
|
||||
#elif _LIBCPP_DEBUG_LEVEL == 2
|
||||
# define _LIBCPP_DEBUG_ASSERT(x, m) _LIBCPP_ASSERT(x, m)
|
||||
# define _LIBCPP_DEBUG_MODE(...) __VA_ARGS__
|
||||
# define _LIBCPP_ASSERT_IMPL(x, m) ((x) ? (void)0 : _VSTD::__libcpp_debug_function(_VSTD::__libcpp_debug_info(__FILE__, __LINE__, #x, m)))
|
||||
#else
|
||||
# error _LIBCPP_DEBUG_LEVEL must be one of 0, 1, 2
|
||||
#endif
|
||||
#ifndef _LIBCPP_DEBUG_MODE
|
||||
#define _LIBCPP_DEBUG_MODE(...) ((void)0)
|
||||
|
||||
#if !defined(_LIBCPP_ASSERT)
|
||||
# define _LIBCPP_ASSERT(x, m) _LIBCPP_ASSERT_IMPL(x, m)
|
||||
#endif
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
@@ -83,7 +81,7 @@ void __libcpp_abort_debug_function(__libcpp_debug_info const&);
|
||||
_LIBCPP_FUNC_VIS
|
||||
bool __libcpp_set_debug_function(__libcpp_debug_function_type __func);
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2 || defined(_LIBCPP_BUILDING_LIBRARY)
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2 || defined(_LIBCPP_BUILDING_LIBRARY)
|
||||
|
||||
struct _LIBCPP_TYPE_VIS __c_node;
|
||||
|
||||
@@ -271,7 +269,7 @@ _LIBCPP_FUNC_VIS __libcpp_db* __get_db();
|
||||
_LIBCPP_FUNC_VIS const __libcpp_db* __get_const_db();
|
||||
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2 || defined(_LIBCPP_BUILDING_LIBRARY)
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2 || defined(_LIBCPP_BUILDING_LIBRARY)
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
|
||||
@@ -298,7 +298,7 @@ public:
|
||||
_LIBCPP_DEBUG_MODE(__get_db()->__insert_i(this));
|
||||
}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__hash_iterator(const __hash_iterator& __i)
|
||||
: __node_(__i.__node_)
|
||||
@@ -322,7 +322,7 @@ public:
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
reference operator*() const {
|
||||
@@ -364,7 +364,7 @@ public:
|
||||
{return !(__x == __y);}
|
||||
|
||||
private:
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__hash_iterator(__next_pointer __node, const void* __c) _NOEXCEPT
|
||||
: __node_(__node)
|
||||
@@ -415,7 +415,7 @@ public:
|
||||
_LIBCPP_DEBUG_MODE(__get_db()->__iterator_copy(this, &__x));
|
||||
}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__hash_const_iterator(const __hash_const_iterator& __i)
|
||||
: __node_(__i.__node_)
|
||||
@@ -439,7 +439,7 @@ public:
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
reference operator*() const {
|
||||
@@ -480,7 +480,7 @@ public:
|
||||
{return !(__x == __y);}
|
||||
|
||||
private:
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__hash_const_iterator(__next_pointer __node, const void* __c) _NOEXCEPT
|
||||
: __node_(__node)
|
||||
@@ -521,7 +521,7 @@ public:
|
||||
_LIBCPP_DEBUG_MODE(__get_db()->__insert_i(this));
|
||||
}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__hash_local_iterator(const __hash_local_iterator& __i)
|
||||
: __node_(__i.__node_),
|
||||
@@ -549,7 +549,7 @@ public:
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
reference operator*() const {
|
||||
@@ -593,7 +593,7 @@ public:
|
||||
{return !(__x == __y);}
|
||||
|
||||
private:
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__hash_local_iterator(__next_pointer __node, size_t __bucket,
|
||||
size_t __bucket_count, const void* __c) _NOEXCEPT
|
||||
@@ -662,7 +662,7 @@ public:
|
||||
_LIBCPP_DEBUG_MODE(__get_db()->__iterator_copy(this, &__x));
|
||||
}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__hash_const_local_iterator(const __hash_const_local_iterator& __i)
|
||||
: __node_(__i.__node_),
|
||||
@@ -690,7 +690,7 @@ public:
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
reference operator*() const {
|
||||
@@ -734,7 +734,7 @@ public:
|
||||
{return !(__x == __y);}
|
||||
|
||||
private:
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__hash_const_local_iterator(__next_pointer __node, size_t __bucket,
|
||||
size_t __bucket_count, const void* __c) _NOEXCEPT
|
||||
@@ -1295,7 +1295,7 @@ public:
|
||||
{
|
||||
_LIBCPP_ASSERT(__n < bucket_count(),
|
||||
"unordered container::begin(n) called with n >= bucket_count()");
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return local_iterator(__bucket_list_[__n], __n, bucket_count(), this);
|
||||
#else
|
||||
return local_iterator(__bucket_list_[__n], __n, bucket_count());
|
||||
@@ -1308,7 +1308,7 @@ public:
|
||||
{
|
||||
_LIBCPP_ASSERT(__n < bucket_count(),
|
||||
"unordered container::end(n) called with n >= bucket_count()");
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return local_iterator(nullptr, __n, bucket_count(), this);
|
||||
#else
|
||||
return local_iterator(nullptr, __n, bucket_count());
|
||||
@@ -1321,7 +1321,7 @@ public:
|
||||
{
|
||||
_LIBCPP_ASSERT(__n < bucket_count(),
|
||||
"unordered container::cbegin(n) called with n >= bucket_count()");
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return const_local_iterator(__bucket_list_[__n], __n, bucket_count(), this);
|
||||
#else
|
||||
return const_local_iterator(__bucket_list_[__n], __n, bucket_count());
|
||||
@@ -1334,21 +1334,21 @@ public:
|
||||
{
|
||||
_LIBCPP_ASSERT(__n < bucket_count(),
|
||||
"unordered container::cend(n) called with n >= bucket_count()");
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return const_local_iterator(nullptr, __n, bucket_count(), this);
|
||||
#else
|
||||
return const_local_iterator(nullptr, __n, bucket_count());
|
||||
#endif
|
||||
}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
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;
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
private:
|
||||
void __rehash(size_type __n);
|
||||
@@ -1539,7 +1539,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::~__hash_table()
|
||||
#endif
|
||||
|
||||
__deallocate_node(__p1_.first().__next_);
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__erase_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1583,7 +1583,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__deallocate_node(__next_pointer __np)
|
||||
while (__np != nullptr)
|
||||
{
|
||||
__next_pointer __next = __np->__next_;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__c_node* __c = __get_db()->__find_c_and_lock(this);
|
||||
for (__i_node** __p = __c->end_; __p != __c->beg_; )
|
||||
{
|
||||
@@ -1646,7 +1646,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__move_assign(
|
||||
__u.__p1_.first().__next_ = nullptr;
|
||||
__u.size() = 0;
|
||||
}
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->swap(this, &__u);
|
||||
#endif
|
||||
}
|
||||
@@ -1800,7 +1800,7 @@ inline
|
||||
typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
|
||||
__hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator(__p1_.first().__next_, this);
|
||||
#else
|
||||
return iterator(__p1_.first().__next_);
|
||||
@@ -1812,7 +1812,7 @@ inline
|
||||
typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
|
||||
__hash_table<_Tp, _Hash, _Equal, _Alloc>::end() _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator(nullptr, this);
|
||||
#else
|
||||
return iterator(nullptr);
|
||||
@@ -1824,7 +1824,7 @@ inline
|
||||
typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator
|
||||
__hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() const _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return const_iterator(__p1_.first().__next_, this);
|
||||
#else
|
||||
return const_iterator(__p1_.first().__next_);
|
||||
@@ -1836,7 +1836,7 @@ inline
|
||||
typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator
|
||||
__hash_table<_Tp, _Hash, _Equal, _Alloc>::end() const _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return const_iterator(nullptr, this);
|
||||
#else
|
||||
return const_iterator(nullptr);
|
||||
@@ -1945,7 +1945,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_unique(__node_pointer __
|
||||
__existing_node = __nd->__ptr();
|
||||
__inserted = true;
|
||||
}
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return pair<iterator, bool>(iterator(__existing_node, this), __inserted);
|
||||
#else
|
||||
return pair<iterator, bool>(iterator(__existing_node), __inserted);
|
||||
@@ -2043,7 +2043,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_multi(__node_pointer __c
|
||||
__next_pointer __pn = __node_insert_multi_prepare(__cp->__hash(), __cp->__value_);
|
||||
__node_insert_multi_perform(__cp, __pn);
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator(__cp->__ptr(), this);
|
||||
#else
|
||||
return iterator(__cp->__ptr());
|
||||
@@ -2055,7 +2055,7 @@ typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
|
||||
__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_multi(
|
||||
const_iterator __p, __node_pointer __cp)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"unordered container::emplace_hint(const_iterator, args...) called with an iterator not"
|
||||
" referring to this unordered container");
|
||||
@@ -2078,7 +2078,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_multi(
|
||||
__cp->__next_ = __np;
|
||||
__pp->__next_ = static_cast<__next_pointer>(__cp);
|
||||
++size();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator(static_cast<__next_pointer>(__cp), this);
|
||||
#else
|
||||
return iterator(static_cast<__next_pointer>(__cp));
|
||||
@@ -2159,7 +2159,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_unique_key_args(_Key const&
|
||||
__inserted = true;
|
||||
}
|
||||
__done:
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return pair<iterator, bool>(iterator(__nd, this), __inserted);
|
||||
#else
|
||||
return pair<iterator, bool>(iterator(__nd), __inserted);
|
||||
@@ -2197,7 +2197,7 @@ typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
|
||||
__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_hint_multi(
|
||||
const_iterator __p, _Args&&... __args)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"unordered container::emplace_hint(const_iterator, args...) called with an iterator not"
|
||||
" referring to this unordered container");
|
||||
@@ -2225,7 +2225,7 @@ typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
|
||||
__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_multi(const_iterator __p,
|
||||
const __container_value_type& __x)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"unordered container::insert(const_iterator, lvalue) called with an iterator not"
|
||||
" referring to this unordered container");
|
||||
@@ -2399,9 +2399,9 @@ template <class _Tp, class _Hash, class _Equal, class _Alloc>
|
||||
void
|
||||
__hash_table<_Tp, _Hash, _Equal, _Alloc>::__rehash(size_type __nbc)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__invalidate_all(this);
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif
|
||||
__pointer_allocator& __npa = __bucket_list_.get_deleter().__alloc();
|
||||
__bucket_list_.reset(__nbc > 0 ?
|
||||
__pointer_alloc_traits::allocate(__npa, __nbc) : nullptr);
|
||||
@@ -2470,7 +2470,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::find(const _Key& __k)
|
||||
{
|
||||
if ((__nd->__hash() == __hash)
|
||||
&& key_eq()(__nd->__upcast()->__value_, __k))
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator(__nd, this);
|
||||
#else
|
||||
return iterator(__nd);
|
||||
@@ -2501,7 +2501,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::find(const _Key& __k) const
|
||||
{
|
||||
if ((__nd->__hash() == __hash)
|
||||
&& key_eq()(__nd->__upcast()->__value_, __k))
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return const_iterator(__nd, this);
|
||||
#else
|
||||
return const_iterator(__nd);
|
||||
@@ -2586,7 +2586,7 @@ typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
|
||||
__hash_table<_Tp, _Hash, _Equal, _Alloc>::erase(const_iterator __p)
|
||||
{
|
||||
__next_pointer __np = __p.__node_;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"unordered container erase(iterator) called with an iterator not"
|
||||
" referring to this container");
|
||||
@@ -2606,7 +2606,7 @@ typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator
|
||||
__hash_table<_Tp, _Hash, _Equal, _Alloc>::erase(const_iterator __first,
|
||||
const_iterator __last)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__first) == this,
|
||||
"unodered container::erase(iterator, iterator) called with an iterator not"
|
||||
" referring to this unodered container");
|
||||
@@ -2620,7 +2620,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::erase(const_iterator __first,
|
||||
erase(__p);
|
||||
}
|
||||
__next_pointer __np = __last.__node_;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator (__np, this);
|
||||
#else
|
||||
return iterator (__np);
|
||||
@@ -2691,7 +2691,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::remove(const_iterator __p) _NOEXCEPT
|
||||
__pn->__next_ = __cn->__next_;
|
||||
__cn->__next_ = nullptr;
|
||||
--size();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__c_node* __c = __get_db()->__find_c_and_lock(this);
|
||||
for (__i_node** __dp = __c->end_; __dp != __c->beg_; )
|
||||
{
|
||||
@@ -2842,7 +2842,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::swap(__hash_table& __u)
|
||||
if (__u.size() > 0)
|
||||
__u.__bucket_list_[__constrain_hash(__u.__p1_.first().__next_->__hash(), __u.bucket_count())] =
|
||||
__u.__p1_.first().__ptr();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->swap(this, &__u);
|
||||
#endif
|
||||
}
|
||||
@@ -2876,7 +2876,7 @@ swap(__hash_table<_Tp, _Hash, _Equal, _Alloc>& __x,
|
||||
__x.swap(__y);
|
||||
}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
template <class _Tp, class _Hash, class _Equal, class _Alloc>
|
||||
bool
|
||||
@@ -2906,7 +2906,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::__subscriptable(const const_iterator*,
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
_LIBCPP_END_NAMESPACE_STD
|
||||
|
||||
|
||||
@@ -1438,7 +1438,7 @@ public:
|
||||
: __i{}
|
||||
#endif
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_i(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1447,11 +1447,11 @@ public:
|
||||
typename enable_if<is_convertible<_Up, iterator_type>::value>::type* = 0) _NOEXCEPT
|
||||
: __i(__u.base())
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__iterator_copy(this, &__u);
|
||||
#endif
|
||||
}
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_IF_NODEBUG
|
||||
__wrap_iter(const __wrap_iter& __x)
|
||||
: __i(__x.base())
|
||||
@@ -1476,7 +1476,7 @@ public:
|
||||
#endif
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_IF_NODEBUG reference operator*() const _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
|
||||
"Attempted to dereference a non-dereferenceable iterator");
|
||||
#endif
|
||||
@@ -1484,7 +1484,7 @@ public:
|
||||
}
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_IF_NODEBUG pointer operator->() const _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
|
||||
"Attempted to dereference a non-dereferenceable iterator");
|
||||
#endif
|
||||
@@ -1492,7 +1492,7 @@ public:
|
||||
}
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_IF_NODEBUG __wrap_iter& operator++() _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
|
||||
"Attempted to increment non-incrementable iterator");
|
||||
#endif
|
||||
@@ -1504,7 +1504,7 @@ public:
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_IF_NODEBUG __wrap_iter& operator--() _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__decrementable(this),
|
||||
"Attempted to decrement non-decrementable iterator");
|
||||
#endif
|
||||
@@ -1517,7 +1517,7 @@ public:
|
||||
{__wrap_iter __w(*this); __w += __n; return __w;}
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_IF_NODEBUG __wrap_iter& operator+=(difference_type __n) _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__addable(this, __n),
|
||||
"Attempted to add/subtract iterator outside of valid range");
|
||||
#endif
|
||||
@@ -1530,7 +1530,7 @@ public:
|
||||
{*this += -__n; return *this;}
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_IF_NODEBUG reference operator[](difference_type __n) const _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__subscriptable(this, __n),
|
||||
"Attempted to subscript iterator outside of valid range");
|
||||
#endif
|
||||
@@ -1540,7 +1540,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_IF_NODEBUG iterator_type base() const _NOEXCEPT {return __i;}
|
||||
|
||||
private:
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_IF_NODEBUG __wrap_iter(const void* __p, iterator_type __x) : __i(__x)
|
||||
{
|
||||
__get_db()->__insert_ic(this, __p);
|
||||
@@ -1641,7 +1641,7 @@ inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_IF_NODEBUG
|
||||
bool
|
||||
operator<(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__less_than_comparable(&__x, &__y),
|
||||
"Attempted to compare incomparable iterators");
|
||||
#endif
|
||||
@@ -1719,7 +1719,7 @@ auto
|
||||
operator-(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT
|
||||
-> decltype(__x.base() - __y.base())
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__less_than_comparable(&__x, &__y),
|
||||
"Attempted to subtract incompatible iterators");
|
||||
#endif
|
||||
@@ -1731,7 +1731,7 @@ inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_IF_NODEBUG
|
||||
typename __wrap_iter<_Iter1>::difference_type
|
||||
operator-(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__less_than_comparable(&__x, &__y),
|
||||
"Attempted to subtract incompatible iterators");
|
||||
#endif
|
||||
|
||||
@@ -293,7 +293,7 @@ class _LIBCPP_TEMPLATE_VIS __list_iterator
|
||||
|
||||
__link_pointer __ptr_;
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
explicit __list_iterator(__link_pointer __p, const void* __c) _NOEXCEPT
|
||||
: __ptr_(__p)
|
||||
@@ -320,12 +320,12 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__list_iterator() _NOEXCEPT : __ptr_(nullptr)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_i(this);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__list_iterator(const __list_iterator& __p)
|
||||
@@ -351,12 +351,12 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
reference operator*() const
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
|
||||
"Attempted to dereference a non-dereferenceable list::iterator");
|
||||
#endif
|
||||
@@ -365,7 +365,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
pointer operator->() const
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
|
||||
"Attempted to dereference a non-dereferenceable list::iterator");
|
||||
#endif
|
||||
@@ -375,7 +375,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__list_iterator& operator++()
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
|
||||
"Attempted to increment non-incrementable list::iterator");
|
||||
#endif
|
||||
@@ -388,7 +388,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__list_iterator& operator--()
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__decrementable(this),
|
||||
"Attempted to decrement non-decrementable list::iterator");
|
||||
#endif
|
||||
@@ -416,7 +416,7 @@ class _LIBCPP_TEMPLATE_VIS __list_const_iterator
|
||||
|
||||
__link_pointer __ptr_;
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
explicit __list_const_iterator(__link_pointer __p, const void* __c) _NOEXCEPT
|
||||
: __ptr_(__p)
|
||||
@@ -440,7 +440,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__list_const_iterator() _NOEXCEPT : __ptr_(nullptr)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_i(this);
|
||||
#endif
|
||||
}
|
||||
@@ -448,12 +448,12 @@ public:
|
||||
__list_const_iterator(const __list_iterator<_Tp, _VoidPtr>& __p) _NOEXCEPT
|
||||
: __ptr_(__p.__ptr_)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__iterator_copy(this, &__p);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__list_const_iterator(const __list_const_iterator& __p)
|
||||
@@ -479,11 +479,11 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
reference operator*() const
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
|
||||
"Attempted to dereference a non-dereferenceable list::const_iterator");
|
||||
#endif
|
||||
@@ -492,7 +492,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
pointer operator->() const
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
|
||||
"Attempted to dereference a non-dereferenceable list::const_iterator");
|
||||
#endif
|
||||
@@ -502,7 +502,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__list_const_iterator& operator++()
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),
|
||||
"Attempted to increment non-incrementable list::const_iterator");
|
||||
#endif
|
||||
@@ -515,7 +515,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
__list_const_iterator& operator--()
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__decrementable(this),
|
||||
"Attempted to decrement non-decrementable list::const_iterator");
|
||||
#endif
|
||||
@@ -614,7 +614,7 @@ protected:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
iterator begin() _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator(__end_.__next_, this);
|
||||
#else
|
||||
return iterator(__end_.__next_);
|
||||
@@ -623,7 +623,7 @@ protected:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
const_iterator begin() const _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return const_iterator(__end_.__next_, this);
|
||||
#else
|
||||
return const_iterator(__end_.__next_);
|
||||
@@ -632,7 +632,7 @@ protected:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
iterator end() _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator(__end_as_link(), this);
|
||||
#else
|
||||
return iterator(__end_as_link());
|
||||
@@ -641,7 +641,7 @@ protected:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
const_iterator end() const _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return const_iterator(__end_as_link(), this);
|
||||
#else
|
||||
return const_iterator(__end_as_link());
|
||||
@@ -696,7 +696,7 @@ private:
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
void __invalidate_all_iterators() {
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__invalidate_all(this);
|
||||
#endif
|
||||
}
|
||||
@@ -741,7 +741,7 @@ inline __list_imp<_Tp, _Alloc>::__list_imp(__node_allocator&& __a) _NOEXCEPT
|
||||
template <class _Tp, class _Alloc>
|
||||
__list_imp<_Tp, _Alloc>::~__list_imp() {
|
||||
clear();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__erase_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -795,7 +795,7 @@ __list_imp<_Tp, _Alloc>::swap(__list_imp& __c)
|
||||
else
|
||||
__c.__end_.__prev_->__next_ = __c.__end_.__next_->__prev_ = __c.__end_as_link();
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__libcpp_db* __db = __get_db();
|
||||
__c_node* __cn1 = __db->__find_c_and_lock(this);
|
||||
__c_node* __cn2 = __db->__find_c(&__c);
|
||||
@@ -870,14 +870,14 @@ public:
|
||||
list()
|
||||
_NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
explicit list(const allocator_type& __a) : base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1117,14 +1117,14 @@ public:
|
||||
return __hold_pointer(__p, __node_destructor(__na, 1));
|
||||
}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
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;
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
private:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
@@ -1207,7 +1207,7 @@ list<_Tp, _Alloc>::__iterator(size_type __n)
|
||||
template <class _Tp, class _Alloc>
|
||||
list<_Tp, _Alloc>::list(size_type __n)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
for (; __n > 0; --__n)
|
||||
@@ -1222,7 +1222,7 @@ list<_Tp, _Alloc>::list(size_type __n)
|
||||
template <class _Tp, class _Alloc>
|
||||
list<_Tp, _Alloc>::list(size_type __n, const allocator_type& __a) : base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
for (; __n > 0; --__n)
|
||||
@@ -1233,7 +1233,7 @@ list<_Tp, _Alloc>::list(size_type __n, const allocator_type& __a) : base(__a)
|
||||
template <class _Tp, class _Alloc>
|
||||
list<_Tp, _Alloc>::list(size_type __n, const value_type& __x)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
for (; __n > 0; --__n)
|
||||
@@ -1244,7 +1244,7 @@ template <class _Tp, class _Alloc>
|
||||
list<_Tp, _Alloc>::list(size_type __n, const value_type& __x, const allocator_type& __a)
|
||||
: base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
for (; __n > 0; --__n)
|
||||
@@ -1256,7 +1256,7 @@ template <class _InpIter>
|
||||
list<_Tp, _Alloc>::list(_InpIter __f, _InpIter __l,
|
||||
typename enable_if<__is_cpp17_input_iterator<_InpIter>::value>::type*)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
for (; __f != __l; ++__f)
|
||||
@@ -1269,7 +1269,7 @@ list<_Tp, _Alloc>::list(_InpIter __f, _InpIter __l, const allocator_type& __a,
|
||||
typename enable_if<__is_cpp17_input_iterator<_InpIter>::value>::type*)
|
||||
: base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
for (; __f != __l; ++__f)
|
||||
@@ -1280,7 +1280,7 @@ template <class _Tp, class _Alloc>
|
||||
list<_Tp, _Alloc>::list(const list& __c)
|
||||
: base(__node_alloc_traits::select_on_container_copy_construction(
|
||||
__c.__node_alloc())) {
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
for (const_iterator __i = __c.begin(), __e = __c.end(); __i != __e; ++__i)
|
||||
@@ -1291,7 +1291,7 @@ template <class _Tp, class _Alloc>
|
||||
list<_Tp, _Alloc>::list(const list& __c, const allocator_type& __a)
|
||||
: base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
for (const_iterator __i = __c.begin(), __e = __c.end(); __i != __e; ++__i)
|
||||
@@ -1304,7 +1304,7 @@ template <class _Tp, class _Alloc>
|
||||
list<_Tp, _Alloc>::list(initializer_list<value_type> __il, const allocator_type& __a)
|
||||
: base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
for (typename initializer_list<value_type>::const_iterator __i = __il.begin(),
|
||||
@@ -1315,7 +1315,7 @@ list<_Tp, _Alloc>::list(initializer_list<value_type> __il, const allocator_type&
|
||||
template <class _Tp, class _Alloc>
|
||||
list<_Tp, _Alloc>::list(initializer_list<value_type> __il)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
for (typename initializer_list<value_type>::const_iterator __i = __il.begin(),
|
||||
@@ -1327,7 +1327,7 @@ template <class _Tp, class _Alloc>
|
||||
inline list<_Tp, _Alloc>::list(list&& __c)
|
||||
_NOEXCEPT_(is_nothrow_move_constructible<__node_allocator>::value)
|
||||
: base(_VSTD::move(__c.__node_alloc())) {
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
splice(end(), __c);
|
||||
@@ -1338,7 +1338,7 @@ inline
|
||||
list<_Tp, _Alloc>::list(list&& __c, const allocator_type& __a)
|
||||
: base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
if (__a == __c.get_allocator())
|
||||
@@ -1415,7 +1415,7 @@ list<_Tp, _Alloc>::assign(_InpIter __f, _InpIter __l,
|
||||
insert(__e, __f, __l);
|
||||
else
|
||||
erase(__i, __e);
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__invalidate_all(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1432,7 +1432,7 @@ list<_Tp, _Alloc>::assign(size_type __n, const value_type& __x)
|
||||
insert(__e, __n, __x);
|
||||
else
|
||||
erase(__i, __e);
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__invalidate_all(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1449,7 +1449,7 @@ template <class _Tp, class _Alloc>
|
||||
typename list<_Tp, _Alloc>::iterator
|
||||
list<_Tp, _Alloc>::insert(const_iterator __p, const value_type& __x)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"list::insert(iterator, x) called with an iterator not"
|
||||
" referring to this list");
|
||||
@@ -1459,7 +1459,7 @@ list<_Tp, _Alloc>::insert(const_iterator __p, const value_type& __x)
|
||||
__node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x);
|
||||
__link_nodes(__p.__ptr_, __hold->__as_link(), __hold->__as_link());
|
||||
++base::__sz();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator(__hold.release()->__as_link(), this);
|
||||
#else
|
||||
return iterator(__hold.release()->__as_link());
|
||||
@@ -1470,7 +1470,7 @@ template <class _Tp, class _Alloc>
|
||||
typename list<_Tp, _Alloc>::iterator
|
||||
list<_Tp, _Alloc>::insert(const_iterator __p, size_type __n, const value_type& __x)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"list::insert(iterator, n, x) called with an iterator not"
|
||||
" referring to this list");
|
||||
@@ -1485,7 +1485,7 @@ list<_Tp, _Alloc>::insert(const_iterator __p, size_type __n, const value_type& _
|
||||
__hold_pointer __hold = __allocate_node(__na);
|
||||
__node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x);
|
||||
++__ds;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__r = iterator(__hold->__as_link(), this);
|
||||
#else
|
||||
__r = iterator(__hold->__as_link());
|
||||
@@ -1515,7 +1515,7 @@ list<_Tp, _Alloc>::insert(const_iterator __p, size_type __n, const value_type& _
|
||||
__node_alloc_traits::deallocate(__na, __e.__ptr_->__as_node(), 1);
|
||||
if (__prev == 0)
|
||||
break;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__e = iterator(__prev, this);
|
||||
#else
|
||||
__e = iterator(__prev);
|
||||
@@ -1536,7 +1536,7 @@ typename list<_Tp, _Alloc>::iterator
|
||||
list<_Tp, _Alloc>::insert(const_iterator __p, _InpIter __f, _InpIter __l,
|
||||
typename enable_if<__is_cpp17_input_iterator<_InpIter>::value>::type*)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"list::insert(iterator, range) called with an iterator not"
|
||||
" referring to this list");
|
||||
@@ -1551,7 +1551,7 @@ list<_Tp, _Alloc>::insert(const_iterator __p, _InpIter __f, _InpIter __l,
|
||||
__hold_pointer __hold = __allocate_node(__na);
|
||||
__node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), *__f);
|
||||
++__ds;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__r = iterator(__hold.get()->__as_link(), this);
|
||||
#else
|
||||
__r = iterator(__hold.get()->__as_link());
|
||||
@@ -1581,7 +1581,7 @@ list<_Tp, _Alloc>::insert(const_iterator __p, _InpIter __f, _InpIter __l,
|
||||
__node_alloc_traits::deallocate(__na, __e.__ptr_->__as_node(), 1);
|
||||
if (__prev == 0)
|
||||
break;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__e = iterator(__prev, this);
|
||||
#else
|
||||
__e = iterator(__prev);
|
||||
@@ -1695,7 +1695,7 @@ template <class... _Args>
|
||||
typename list<_Tp, _Alloc>::iterator
|
||||
list<_Tp, _Alloc>::emplace(const_iterator __p, _Args&&... __args)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"list::emplace(iterator, args...) called with an iterator not"
|
||||
" referring to this list");
|
||||
@@ -1707,7 +1707,7 @@ list<_Tp, _Alloc>::emplace(const_iterator __p, _Args&&... __args)
|
||||
__link_nodes(__p.__ptr_, __nl, __nl);
|
||||
++base::__sz();
|
||||
__hold.release();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator(__nl, this);
|
||||
#else
|
||||
return iterator(__nl);
|
||||
@@ -1718,7 +1718,7 @@ template <class _Tp, class _Alloc>
|
||||
typename list<_Tp, _Alloc>::iterator
|
||||
list<_Tp, _Alloc>::insert(const_iterator __p, value_type&& __x)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"list::insert(iterator, x) called with an iterator not"
|
||||
" referring to this list");
|
||||
@@ -1730,7 +1730,7 @@ list<_Tp, _Alloc>::insert(const_iterator __p, value_type&& __x)
|
||||
__link_nodes(__p.__ptr_, __nl, __nl);
|
||||
++base::__sz();
|
||||
__hold.release();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator(__nl, this);
|
||||
#else
|
||||
return iterator(__nl);
|
||||
@@ -1748,7 +1748,7 @@ list<_Tp, _Alloc>::pop_front()
|
||||
__link_pointer __n = base::__end_.__next_;
|
||||
base::__unlink_nodes(__n, __n);
|
||||
--base::__sz();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__c_node* __c = __get_db()->__find_c_and_lock(this);
|
||||
for (__i_node** __p = __c->end_; __p != __c->beg_; )
|
||||
{
|
||||
@@ -1777,7 +1777,7 @@ list<_Tp, _Alloc>::pop_back()
|
||||
__link_pointer __n = base::__end_.__prev_;
|
||||
base::__unlink_nodes(__n, __n);
|
||||
--base::__sz();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__c_node* __c = __get_db()->__find_c_and_lock(this);
|
||||
for (__i_node** __p = __c->end_; __p != __c->beg_; )
|
||||
{
|
||||
@@ -1801,7 +1801,7 @@ template <class _Tp, class _Alloc>
|
||||
typename list<_Tp, _Alloc>::iterator
|
||||
list<_Tp, _Alloc>::erase(const_iterator __p)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"list::erase(iterator) called with an iterator not"
|
||||
" referring to this list");
|
||||
@@ -1813,7 +1813,7 @@ list<_Tp, _Alloc>::erase(const_iterator __p)
|
||||
__link_pointer __r = __n->__next_;
|
||||
base::__unlink_nodes(__n, __n);
|
||||
--base::__sz();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__c_node* __c = __get_db()->__find_c_and_lock(this);
|
||||
for (__i_node** __ip = __c->end_; __ip != __c->beg_; )
|
||||
{
|
||||
@@ -1831,7 +1831,7 @@ list<_Tp, _Alloc>::erase(const_iterator __p)
|
||||
__node_pointer __np = __n->__as_node();
|
||||
__node_alloc_traits::destroy(__na, _VSTD::addressof(__np->__value_));
|
||||
__node_alloc_traits::deallocate(__na, __np, 1);
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator(__r, this);
|
||||
#else
|
||||
return iterator(__r);
|
||||
@@ -1842,7 +1842,7 @@ template <class _Tp, class _Alloc>
|
||||
typename list<_Tp, _Alloc>::iterator
|
||||
list<_Tp, _Alloc>::erase(const_iterator __f, const_iterator __l)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__f) == this,
|
||||
"list::erase(iterator, iterator) called with an iterator not"
|
||||
" referring to this list");
|
||||
@@ -1859,7 +1859,7 @@ list<_Tp, _Alloc>::erase(const_iterator __f, const_iterator __l)
|
||||
__link_pointer __n = __f.__ptr_;
|
||||
++__f;
|
||||
--base::__sz();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__c_node* __c = __get_db()->__find_c_and_lock(this);
|
||||
for (__i_node** __p = __c->end_; __p != __c->beg_; )
|
||||
{
|
||||
@@ -1879,7 +1879,7 @@ list<_Tp, _Alloc>::erase(const_iterator __f, const_iterator __l)
|
||||
__node_alloc_traits::deallocate(__na, __np, 1);
|
||||
}
|
||||
}
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator(__l.__ptr_, this);
|
||||
#else
|
||||
return iterator(__l.__ptr_);
|
||||
@@ -1900,7 +1900,7 @@ list<_Tp, _Alloc>::resize(size_type __n)
|
||||
__hold_pointer __hold = __allocate_node(__na);
|
||||
__node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_));
|
||||
++__ds;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
iterator __r = iterator(__hold.release()->__as_link(), this);
|
||||
#else
|
||||
iterator __r = iterator(__hold.release()->__as_link());
|
||||
@@ -1929,7 +1929,7 @@ list<_Tp, _Alloc>::resize(size_type __n)
|
||||
__node_alloc_traits::deallocate(__na, __e.__ptr_->__as_node(), 1);
|
||||
if (__prev == 0)
|
||||
break;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__e = iterator(__prev, this);
|
||||
#else
|
||||
__e = iterator(__prev);
|
||||
@@ -1958,7 +1958,7 @@ list<_Tp, _Alloc>::resize(size_type __n, const value_type& __x)
|
||||
__node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x);
|
||||
++__ds;
|
||||
__link_pointer __nl = __hold.release()->__as_link();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
iterator __r = iterator(__nl, this);
|
||||
#else
|
||||
iterator __r = iterator(__nl);
|
||||
@@ -1987,7 +1987,7 @@ list<_Tp, _Alloc>::resize(size_type __n, const value_type& __x)
|
||||
__node_alloc_traits::deallocate(__na, __e.__ptr_->__as_node(), 1);
|
||||
if (__prev == 0)
|
||||
break;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__e = iterator(__prev, this);
|
||||
#else
|
||||
__e = iterator(__prev);
|
||||
@@ -2007,7 +2007,7 @@ list<_Tp, _Alloc>::splice(const_iterator __p, list& __c)
|
||||
{
|
||||
_LIBCPP_ASSERT(this != &__c,
|
||||
"list::splice(iterator, list) called with this == &list");
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"list::splice(iterator, list) called with an iterator not"
|
||||
" referring to this list");
|
||||
@@ -2020,7 +2020,7 @@ list<_Tp, _Alloc>::splice(const_iterator __p, list& __c)
|
||||
__link_nodes(__p.__ptr_, __f, __l);
|
||||
base::__sz() += __c.__sz();
|
||||
__c.__sz() = 0;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
if (&__c != this) {
|
||||
__libcpp_db* __db = __get_db();
|
||||
__c_node* __cn1 = __db->__find_c_and_lock(this);
|
||||
@@ -2047,7 +2047,7 @@ template <class _Tp, class _Alloc>
|
||||
void
|
||||
list<_Tp, _Alloc>::splice(const_iterator __p, list& __c, const_iterator __i)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"list::splice(iterator, list, iterator) called with first iterator not"
|
||||
" referring to this list");
|
||||
@@ -2065,7 +2065,7 @@ list<_Tp, _Alloc>::splice(const_iterator __p, list& __c, const_iterator __i)
|
||||
__link_nodes(__p.__ptr_, __f, __f);
|
||||
--__c.__sz();
|
||||
++base::__sz();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
if (&__c != this) {
|
||||
__libcpp_db* __db = __get_db();
|
||||
__c_node* __cn1 = __db->__find_c_and_lock(this);
|
||||
@@ -2092,7 +2092,7 @@ template <class _Tp, class _Alloc>
|
||||
void
|
||||
list<_Tp, _Alloc>::splice(const_iterator __p, list& __c, const_iterator __f, const_iterator __l)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"list::splice(iterator, list, iterator, iterator) called with first iterator not"
|
||||
" referring to this list");
|
||||
@@ -2121,7 +2121,7 @@ list<_Tp, _Alloc>::splice(const_iterator __p, list& __c, const_iterator __f, con
|
||||
}
|
||||
base::__unlink_nodes(__first, __last);
|
||||
__link_nodes(__p.__ptr_, __first, __last);
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
if (&__c != this) {
|
||||
__libcpp_db* __db = __get_db();
|
||||
__c_node* __cn1 = __db->__find_c_and_lock(this);
|
||||
@@ -2258,7 +2258,7 @@ list<_Tp, _Alloc>::merge(list& __c, _Comp __comp)
|
||||
++__f1;
|
||||
}
|
||||
splice(__e1, __c);
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__libcpp_db* __db = __get_db();
|
||||
__c_node* __cn1 = __db->__find_c_and_lock(this);
|
||||
__c_node* __cn2 = __db->__find_c(&__c);
|
||||
@@ -2382,7 +2382,7 @@ list<_Tp, _Alloc>::__invariants() const
|
||||
return size() == _VSTD::distance(begin(), end());
|
||||
}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
template <class _Tp, class _Alloc>
|
||||
bool
|
||||
@@ -2412,7 +2412,7 @@ list<_Tp, _Alloc>::__subscriptable(const const_iterator*, ptrdiff_t) const
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
template <class _Tp, class _Alloc>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
|
||||
@@ -1427,7 +1427,7 @@ num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob,
|
||||
return do_put(__s, __iob, __fl, (unsigned long)__v);
|
||||
const numpunct<char_type>& __np = use_facet<numpunct<char_type> >(__iob.getloc());
|
||||
typedef typename numpunct<char_type>::string_type string_type;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
string_type __tmp(__v ? __np.truename() : __np.falsename());
|
||||
string_type __nm = _VSTD::move(__tmp);
|
||||
#else
|
||||
|
||||
@@ -816,7 +816,7 @@ public:
|
||||
basic_string(const _CharT* __s) : __r_(__default_init_tag(), __default_init_tag()) {
|
||||
_LIBCPP_ASSERT(__s != nullptr, "basic_string(const char*) detected nullptr");
|
||||
__init(__s, traits_type::length(__s));
|
||||
# if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
# if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
# endif
|
||||
}
|
||||
@@ -890,7 +890,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY basic_string& operator=(const value_type* __s) {return assign(__s);}
|
||||
basic_string& operator=(value_type __c);
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
iterator begin() _NOEXCEPT
|
||||
{return iterator(this, __get_pointer());}
|
||||
@@ -916,7 +916,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
const_iterator end() const _NOEXCEPT
|
||||
{return const_iterator(__get_pointer() + size());}
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
reverse_iterator rbegin() _NOEXCEPT
|
||||
{return reverse_iterator(end());}
|
||||
@@ -1422,14 +1422,14 @@ public:
|
||||
bool __is_long() const _NOEXCEPT
|
||||
{return bool(__r_.first().__s.__size_ & __short_mask);}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
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;
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
private:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
@@ -1726,21 +1726,21 @@ inline
|
||||
void
|
||||
basic_string<_CharT, _Traits, _Allocator>::__invalidate_all_iterators()
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__invalidate_all(this);
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits, class _Allocator>
|
||||
inline
|
||||
void
|
||||
basic_string<_CharT, _Traits, _Allocator>::__invalidate_iterators_past(size_type
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__pos
|
||||
#endif
|
||||
)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__c_node* __c = __get_db()->__find_c_and_lock(this);
|
||||
if (__c)
|
||||
{
|
||||
@@ -1758,7 +1758,7 @@ basic_string<_CharT, _Traits, _Allocator>::__invalidate_iterators_past(size_type
|
||||
}
|
||||
__get_db()->unlock();
|
||||
}
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
}
|
||||
|
||||
template <class _CharT, class _Traits, class _Allocator>
|
||||
@@ -1767,7 +1767,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string()
|
||||
_NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
|
||||
: __r_(__default_init_tag(), __default_init_tag())
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__zero();
|
||||
@@ -1783,7 +1783,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __
|
||||
#endif
|
||||
: __r_(__default_init_tag(), __a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__zero();
|
||||
@@ -1845,7 +1845,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, const
|
||||
{
|
||||
_LIBCPP_ASSERT(__s != nullptr, "basic_string(const char*, allocator) detected nullptr");
|
||||
__init(__s, traits_type::length(__s));
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1857,7 +1857,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_
|
||||
{
|
||||
_LIBCPP_ASSERT(__n == 0 || __s != nullptr, "basic_string(const char*, n) detected nullptr");
|
||||
__init(__s, __n);
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1869,7 +1869,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_
|
||||
{
|
||||
_LIBCPP_ASSERT(__n == 0 || __s != nullptr, "basic_string(const char*, n, allocator) detected nullptr");
|
||||
__init(__s, __n);
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1884,7 +1884,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
|
||||
__init_copy_ctor_external(_VSTD::__to_address(__str.__get_long_pointer()),
|
||||
__str.__get_long_size());
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1899,7 +1899,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(
|
||||
else
|
||||
__init_copy_ctor_external(_VSTD::__to_address(__str.__get_long_pointer()),
|
||||
__str.__get_long_size());
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1936,7 +1936,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str)
|
||||
: __r_(_VSTD::move(__str.__r_))
|
||||
{
|
||||
__str.__zero();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
if (__is_long())
|
||||
__get_db()->swap(this, &__str);
|
||||
@@ -1955,7 +1955,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str, co
|
||||
__r_.first().__r = __str.__r_.first().__r;
|
||||
__str.__zero();
|
||||
}
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
if (__is_long())
|
||||
__get_db()->swap(this, &__str);
|
||||
@@ -1994,7 +1994,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __
|
||||
: __r_(__default_init_tag(), __default_init_tag())
|
||||
{
|
||||
__init(__n, __c);
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -2005,7 +2005,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __
|
||||
: __r_(__default_init_tag(), __a)
|
||||
{
|
||||
__init(__n, __c);
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -2020,7 +2020,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
|
||||
if (__pos > __str_sz)
|
||||
this->__throw_out_of_range();
|
||||
__init(__str.data() + __pos, _VSTD::min(__n, __str_sz - __pos));
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -2035,7 +2035,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __st
|
||||
if (__pos > __str_sz)
|
||||
this->__throw_out_of_range();
|
||||
__init(__str.data() + __pos, __str_sz - __pos);
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -2049,7 +2049,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(
|
||||
__self_view __sv0 = __t;
|
||||
__self_view __sv = __sv0.substr(__pos, __n);
|
||||
__init(__sv.data(), __sv.size());
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -2061,7 +2061,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const _Tp & __t)
|
||||
{
|
||||
__self_view __sv = __t;
|
||||
__init(__sv.data(), __sv.size());
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -2073,7 +2073,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(const _Tp & __t, const _
|
||||
{
|
||||
__self_view __sv = __t;
|
||||
__init(__sv.data(), __sv.size());
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -2141,7 +2141,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first,
|
||||
: __r_(__default_init_tag(), __default_init_tag())
|
||||
{
|
||||
__init(__first, __last);
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -2154,7 +2154,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first,
|
||||
: __r_(__default_init_tag(), __a)
|
||||
{
|
||||
__init(__first, __last);
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -2168,7 +2168,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(
|
||||
: __r_(__default_init_tag(), __default_init_tag())
|
||||
{
|
||||
__init(__il.begin(), __il.end());
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -2181,7 +2181,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(
|
||||
: __r_(__default_init_tag(), __a)
|
||||
{
|
||||
__init(__il.begin(), __il.end());
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -2191,7 +2191,7 @@ basic_string<_CharT, _Traits, _Allocator>::basic_string(
|
||||
template <class _CharT, class _Traits, class _Allocator>
|
||||
basic_string<_CharT, _Traits, _Allocator>::~basic_string()
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__erase_c(this);
|
||||
#endif
|
||||
if (__is_long())
|
||||
@@ -2768,7 +2768,7 @@ _EnableIf
|
||||
>
|
||||
basic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, _InputIterator __first, _InputIterator __last)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__pos) == this,
|
||||
"string::insert(iterator, range) called with an iterator not"
|
||||
" referring to this string");
|
||||
@@ -2787,7 +2787,7 @@ _EnableIf
|
||||
>
|
||||
basic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, _ForwardIterator __first, _ForwardIterator __last)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__pos) == this,
|
||||
"string::insert(iterator, range) called with an iterator not"
|
||||
" referring to this string");
|
||||
@@ -2903,7 +2903,7 @@ inline
|
||||
typename basic_string<_CharT, _Traits, _Allocator>::iterator
|
||||
basic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, size_type __n, value_type __c)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__pos) == this,
|
||||
"string::insert(iterator, n, value) called with an iterator not"
|
||||
" referring to this string");
|
||||
@@ -3137,7 +3137,7 @@ inline
|
||||
typename basic_string<_CharT, _Traits, _Allocator>::iterator
|
||||
basic_string<_CharT, _Traits, _Allocator>::erase(const_iterator __pos)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__pos) == this,
|
||||
"string::erase(iterator) called with an iterator not"
|
||||
" referring to this string");
|
||||
@@ -3155,7 +3155,7 @@ inline
|
||||
typename basic_string<_CharT, _Traits, _Allocator>::iterator
|
||||
basic_string<_CharT, _Traits, _Allocator>::erase(const_iterator __first, const_iterator __last)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__first) == this,
|
||||
"string::erase(iterator, iterator) called with an iterator not"
|
||||
" referring to this string");
|
||||
@@ -3426,7 +3426,7 @@ basic_string<_CharT, _Traits, _Allocator>::swap(basic_string& __str)
|
||||
__is_nothrow_swappable<allocator_type>::value)
|
||||
#endif
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
if (!__is_long())
|
||||
__get_db()->__invalidate_all(this);
|
||||
if (!__str.__is_long())
|
||||
@@ -4425,7 +4425,7 @@ inline _LIBCPP_INLINE_VISIBILITY
|
||||
}
|
||||
#endif
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
template<class _CharT, class _Traits, class _Allocator>
|
||||
bool
|
||||
@@ -4459,7 +4459,7 @@ basic_string<_CharT, _Traits, _Allocator>::__subscriptable(const const_iterator*
|
||||
return this->data() <= __p && __p < this->data() + this->size();
|
||||
}
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
#if _LIBCPP_STD_VER > 11
|
||||
// Literal suffixes for basic_string [basic.string.literals]
|
||||
|
||||
@@ -906,7 +906,7 @@ public:
|
||||
unordered_map()
|
||||
_NOEXCEPT_(is_nothrow_default_constructible<__table>::value)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1025,7 +1025,7 @@ public:
|
||||
{return __table_.__insert_unique(__x);}
|
||||
|
||||
iterator insert(const_iterator __p, const value_type& __x) {
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"unordered_map::insert(const_iterator, const value_type&) called with an iterator not"
|
||||
" referring to this unordered_map");
|
||||
@@ -1049,7 +1049,7 @@ public:
|
||||
{return __table_.__insert_unique(_VSTD::move(__x));}
|
||||
|
||||
iterator insert(const_iterator __p, value_type&& __x) {
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"unordered_map::insert(const_iterator, const value_type&) called with an iterator not"
|
||||
" referring to this unordered_map");
|
||||
@@ -1070,7 +1070,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
iterator insert(const_iterator __p, _Pp&& __x)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"unordered_map::insert(const_iterator, value_type&&) called with an iterator not"
|
||||
" referring to this unordered_map");
|
||||
@@ -1089,7 +1089,7 @@ public:
|
||||
template <class... _Args>
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
iterator emplace_hint(const_iterator __p, _Args&&... __args) {
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
"unordered_map::emplace_hint(const_iterator, args...) called with an iterator not"
|
||||
" referring to this unordered_map");
|
||||
@@ -1124,7 +1124,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
iterator try_emplace(const_iterator __h, const key_type& __k, _Args&&... __args)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__h) == this,
|
||||
"unordered_map::try_emplace(const_iterator, key, args...) called with an iterator not"
|
||||
" referring to this unordered_map");
|
||||
@@ -1138,7 +1138,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
iterator try_emplace(const_iterator __h, key_type&& __k, _Args&&... __args)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__h) == this,
|
||||
"unordered_map::try_emplace(const_iterator, key, args...) called with an iterator not"
|
||||
" referring to this unordered_map");
|
||||
@@ -1336,7 +1336,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
void reserve(size_type __n) {__table_.reserve(__n);}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
bool __dereferenceable(const const_iterator* __i) const
|
||||
{return __table_.__dereferenceable(&__i->__i_);}
|
||||
@@ -1347,7 +1347,7 @@ public:
|
||||
bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const
|
||||
{return __table_.__addable(&__i->__i_, __n);}
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
private:
|
||||
|
||||
@@ -1428,7 +1428,7 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
size_type __n, const hasher& __hf, const key_equal& __eql)
|
||||
: __table_(__hf, __eql)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -1440,7 +1440,7 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
const allocator_type& __a)
|
||||
: __table_(__hf, __eql, typename __table::allocator_type(__a))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -1452,7 +1452,7 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
const allocator_type& __a)
|
||||
: __table_(typename __table::allocator_type(__a))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1462,7 +1462,7 @@ template <class _InputIterator>
|
||||
unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
_InputIterator __first, _InputIterator __last)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
insert(__first, __last);
|
||||
@@ -1475,7 +1475,7 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
const hasher& __hf, const key_equal& __eql)
|
||||
: __table_(__hf, __eql)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -1489,7 +1489,7 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
const hasher& __hf, const key_equal& __eql, const allocator_type& __a)
|
||||
: __table_(__hf, __eql, typename __table::allocator_type(__a))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -1501,7 +1501,7 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
const unordered_map& __u)
|
||||
: __table_(__u.__table_)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__u.bucket_count());
|
||||
@@ -1513,7 +1513,7 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
const unordered_map& __u, const allocator_type& __a)
|
||||
: __table_(__u.__table_, typename __table::allocator_type(__a))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__u.bucket_count());
|
||||
@@ -1529,7 +1529,7 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
_NOEXCEPT_(is_nothrow_move_constructible<__table>::value)
|
||||
: __table_(_VSTD::move(__u.__table_))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
__get_db()->swap(this, &__u);
|
||||
#endif
|
||||
@@ -1540,7 +1540,7 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
unordered_map&& __u, const allocator_type& __a)
|
||||
: __table_(_VSTD::move(__u.__table_), typename __table::allocator_type(__a))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
if (__a != __u.get_allocator())
|
||||
@@ -1551,7 +1551,7 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
__u.__table_.remove((__i++).__i_)->__value_.__move());
|
||||
}
|
||||
}
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
else
|
||||
__get_db()->swap(this, &__u);
|
||||
#endif
|
||||
@@ -1561,7 +1561,7 @@ template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
||||
unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
initializer_list<value_type> __il)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
insert(__il.begin(), __il.end());
|
||||
@@ -1573,7 +1573,7 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
const key_equal& __eql)
|
||||
: __table_(__hf, __eql)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -1586,7 +1586,7 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
||||
const key_equal& __eql, const allocator_type& __a)
|
||||
: __table_(__hf, __eql, typename __table::allocator_type(__a))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -1807,7 +1807,7 @@ public:
|
||||
unordered_multimap()
|
||||
_NOEXCEPT_(is_nothrow_default_constructible<__table>::value)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -2108,7 +2108,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
void reserve(size_type __n) {__table_.reserve(__n);}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
bool __dereferenceable(const const_iterator* __i) const
|
||||
{return __table_.__dereferenceable(&__i->__i_);}
|
||||
@@ -2119,7 +2119,7 @@ public:
|
||||
bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const
|
||||
{return __table_.__addable(&__i->__i_, __n);}
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
|
||||
};
|
||||
@@ -2196,7 +2196,7 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
size_type __n, const hasher& __hf, const key_equal& __eql)
|
||||
: __table_(__hf, __eql)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -2208,7 +2208,7 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
const allocator_type& __a)
|
||||
: __table_(__hf, __eql, typename __table::allocator_type(__a))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -2219,7 +2219,7 @@ template <class _InputIterator>
|
||||
unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
_InputIterator __first, _InputIterator __last)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
insert(__first, __last);
|
||||
@@ -2232,7 +2232,7 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
const hasher& __hf, const key_equal& __eql)
|
||||
: __table_(__hf, __eql)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -2246,7 +2246,7 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
const hasher& __hf, const key_equal& __eql, const allocator_type& __a)
|
||||
: __table_(__hf, __eql, typename __table::allocator_type(__a))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -2259,7 +2259,7 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
const allocator_type& __a)
|
||||
: __table_(typename __table::allocator_type(__a))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -2269,7 +2269,7 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
const unordered_multimap& __u)
|
||||
: __table_(__u.__table_)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__u.bucket_count());
|
||||
@@ -2281,7 +2281,7 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
const unordered_multimap& __u, const allocator_type& __a)
|
||||
: __table_(__u.__table_, typename __table::allocator_type(__a))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__u.bucket_count());
|
||||
@@ -2297,7 +2297,7 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
_NOEXCEPT_(is_nothrow_move_constructible<__table>::value)
|
||||
: __table_(_VSTD::move(__u.__table_))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
__get_db()->swap(this, &__u);
|
||||
#endif
|
||||
@@ -2308,7 +2308,7 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
unordered_multimap&& __u, const allocator_type& __a)
|
||||
: __table_(_VSTD::move(__u.__table_), typename __table::allocator_type(__a))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
if (__a != __u.get_allocator())
|
||||
@@ -2320,7 +2320,7 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
__u.__table_.remove((__i++).__i_)->__value_.__move());
|
||||
}
|
||||
}
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
else
|
||||
__get_db()->swap(this, &__u);
|
||||
#endif
|
||||
@@ -2330,7 +2330,7 @@ template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
||||
unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
initializer_list<value_type> __il)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
insert(__il.begin(), __il.end());
|
||||
@@ -2342,7 +2342,7 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
const key_equal& __eql)
|
||||
: __table_(__hf, __eql)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -2355,7 +2355,7 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
||||
const key_equal& __eql, const allocator_type& __a)
|
||||
: __table_(__hf, __eql, typename __table::allocator_type(__a))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
|
||||
@@ -425,7 +425,7 @@ public:
|
||||
unordered_set()
|
||||
_NOEXCEPT_(is_nothrow_default_constructible<__table>::value)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -539,7 +539,7 @@ public:
|
||||
{return __table_.__emplace_unique(_VSTD::forward<_Args>(__args)...);}
|
||||
template <class... _Args>
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
iterator emplace_hint(const_iterator __p, _Args&&... __args)
|
||||
{
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
@@ -556,7 +556,7 @@ public:
|
||||
pair<iterator, bool> insert(value_type&& __x)
|
||||
{return __table_.__insert_unique(_VSTD::move(__x));}
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
iterator insert(const_iterator __p, value_type&& __x)
|
||||
{
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
@@ -577,7 +577,7 @@ public:
|
||||
{return __table_.__insert_unique(__x);}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
iterator insert(const_iterator __p, const value_type& __x)
|
||||
{
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,
|
||||
@@ -726,7 +726,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
void reserve(size_type __n) {__table_.reserve(__n);}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
bool __dereferenceable(const const_iterator* __i) const
|
||||
{return __table_.__dereferenceable(__i);}
|
||||
@@ -737,7 +737,7 @@ public:
|
||||
bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const
|
||||
{return __table_.__addable(__i, __n);}
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
};
|
||||
|
||||
@@ -802,7 +802,7 @@ unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(size_type __n,
|
||||
const hasher& __hf, const key_equal& __eql)
|
||||
: __table_(__hf, __eql)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -813,7 +813,7 @@ unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(size_type __n,
|
||||
const hasher& __hf, const key_equal& __eql, const allocator_type& __a)
|
||||
: __table_(__hf, __eql, __a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -824,7 +824,7 @@ template <class _InputIterator>
|
||||
unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(
|
||||
_InputIterator __first, _InputIterator __last)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
insert(__first, __last);
|
||||
@@ -837,7 +837,7 @@ unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(
|
||||
const hasher& __hf, const key_equal& __eql)
|
||||
: __table_(__hf, __eql)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -851,7 +851,7 @@ unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(
|
||||
const hasher& __hf, const key_equal& __eql, const allocator_type& __a)
|
||||
: __table_(__hf, __eql, __a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -864,7 +864,7 @@ unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(
|
||||
const allocator_type& __a)
|
||||
: __table_(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -874,7 +874,7 @@ unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(
|
||||
const unordered_set& __u)
|
||||
: __table_(__u.__table_)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__u.bucket_count());
|
||||
@@ -886,7 +886,7 @@ unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(
|
||||
const unordered_set& __u, const allocator_type& __a)
|
||||
: __table_(__u.__table_, __a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__u.bucket_count());
|
||||
@@ -902,7 +902,7 @@ unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(
|
||||
_NOEXCEPT_(is_nothrow_move_constructible<__table>::value)
|
||||
: __table_(_VSTD::move(__u.__table_))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
__get_db()->swap(this, &__u);
|
||||
#endif
|
||||
@@ -913,7 +913,7 @@ unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(
|
||||
unordered_set&& __u, const allocator_type& __a)
|
||||
: __table_(_VSTD::move(__u.__table_), __a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
if (__a != __u.get_allocator())
|
||||
@@ -922,7 +922,7 @@ unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(
|
||||
while (__u.size() != 0)
|
||||
__table_.__insert_unique(_VSTD::move(__u.__table_.remove(__i++)->__value_));
|
||||
}
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
else
|
||||
__get_db()->swap(this, &__u);
|
||||
#endif
|
||||
@@ -932,7 +932,7 @@ template <class _Value, class _Hash, class _Pred, class _Alloc>
|
||||
unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(
|
||||
initializer_list<value_type> __il)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
insert(__il.begin(), __il.end());
|
||||
@@ -944,7 +944,7 @@ unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(
|
||||
const key_equal& __eql)
|
||||
: __table_(__hf, __eql)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -957,7 +957,7 @@ unordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(
|
||||
const key_equal& __eql, const allocator_type& __a)
|
||||
: __table_(__hf, __eql, __a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -1091,7 +1091,7 @@ public:
|
||||
unordered_multiset()
|
||||
_NOEXCEPT_(is_nothrow_default_constructible<__table>::value)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1361,7 +1361,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
void reserve(size_type __n) {__table_.reserve(__n);}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
bool __dereferenceable(const const_iterator* __i) const
|
||||
{return __table_.__dereferenceable(__i);}
|
||||
@@ -1372,7 +1372,7 @@ public:
|
||||
bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const
|
||||
{return __table_.__addable(__i, __n);}
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
};
|
||||
|
||||
@@ -1435,7 +1435,7 @@ unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
size_type __n, const hasher& __hf, const key_equal& __eql)
|
||||
: __table_(__hf, __eql)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -1447,7 +1447,7 @@ unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
const allocator_type& __a)
|
||||
: __table_(__hf, __eql, __a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -1458,7 +1458,7 @@ template <class _InputIterator>
|
||||
unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
_InputIterator __first, _InputIterator __last)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
insert(__first, __last);
|
||||
@@ -1471,7 +1471,7 @@ unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
const hasher& __hf, const key_equal& __eql)
|
||||
: __table_(__hf, __eql)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -1485,7 +1485,7 @@ unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
const hasher& __hf, const key_equal& __eql, const allocator_type& __a)
|
||||
: __table_(__hf, __eql, __a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -1498,7 +1498,7 @@ unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
const allocator_type& __a)
|
||||
: __table_(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -1508,7 +1508,7 @@ unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
const unordered_multiset& __u)
|
||||
: __table_(__u.__table_)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__u.bucket_count());
|
||||
@@ -1520,7 +1520,7 @@ unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
const unordered_multiset& __u, const allocator_type& __a)
|
||||
: __table_(__u.__table_, __a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__u.bucket_count());
|
||||
@@ -1536,7 +1536,7 @@ unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
_NOEXCEPT_(is_nothrow_move_constructible<__table>::value)
|
||||
: __table_(_VSTD::move(__u.__table_))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
__get_db()->swap(this, &__u);
|
||||
#endif
|
||||
@@ -1547,7 +1547,7 @@ unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
unordered_multiset&& __u, const allocator_type& __a)
|
||||
: __table_(_VSTD::move(__u.__table_), __a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
if (__a != __u.get_allocator())
|
||||
@@ -1556,7 +1556,7 @@ unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
while (__u.size() != 0)
|
||||
__table_.__insert_multi(_VSTD::move(__u.__table_.remove(__i++)->__value_));
|
||||
}
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
else
|
||||
__get_db()->swap(this, &__u);
|
||||
#endif
|
||||
@@ -1566,7 +1566,7 @@ template <class _Value, class _Hash, class _Pred, class _Alloc>
|
||||
unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
initializer_list<value_type> __il)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
insert(__il.begin(), __il.end());
|
||||
@@ -1578,7 +1578,7 @@ unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
const key_equal& __eql)
|
||||
: __table_(__hf, __eql)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
@@ -1591,7 +1591,7 @@ unordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(
|
||||
const key_equal& __eql, const allocator_type& __a)
|
||||
: __table_(__hf, __eql, __a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
__table_.rehash(__n);
|
||||
|
||||
@@ -496,7 +496,7 @@ public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
vector() _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -508,7 +508,7 @@ public:
|
||||
#endif
|
||||
: __base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -551,7 +551,7 @@ public:
|
||||
~vector()
|
||||
{
|
||||
__annotate_delete();
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__erase_c(this);
|
||||
#endif
|
||||
}
|
||||
@@ -789,14 +789,14 @@ public:
|
||||
|
||||
bool __invariants() const;
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
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;
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
private:
|
||||
_LIBCPP_INLINE_VISIBILITY void __invalidate_all_iterators();
|
||||
@@ -1121,7 +1121,7 @@ vector<_Tp, _Allocator>::__append(size_type __n, const_reference __x)
|
||||
template <class _Tp, class _Allocator>
|
||||
vector<_Tp, _Allocator>::vector(size_type __n)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
if (__n > 0)
|
||||
@@ -1136,7 +1136,7 @@ template <class _Tp, class _Allocator>
|
||||
vector<_Tp, _Allocator>::vector(size_type __n, const allocator_type& __a)
|
||||
: __base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
if (__n > 0)
|
||||
@@ -1150,7 +1150,7 @@ vector<_Tp, _Allocator>::vector(size_type __n, const allocator_type& __a)
|
||||
template <class _Tp, class _Allocator>
|
||||
vector<_Tp, _Allocator>::vector(size_type __n, const value_type& __x)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
if (__n > 0)
|
||||
@@ -1164,7 +1164,7 @@ template <class _Tp, class _Allocator>
|
||||
vector<_Tp, _Allocator>::vector(size_type __n, const value_type& __x, const allocator_type& __a)
|
||||
: __base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
if (__n > 0)
|
||||
@@ -1184,7 +1184,7 @@ vector<_Tp, _Allocator>::vector(_InputIterator __first,
|
||||
typename iterator_traits<_InputIterator>::reference>::value,
|
||||
_InputIterator>::type __last)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
for (; __first != __last; ++__first)
|
||||
@@ -1201,7 +1201,7 @@ vector<_Tp, _Allocator>::vector(_InputIterator __first, _InputIterator __last, c
|
||||
typename iterator_traits<_InputIterator>::reference>::value>::type*)
|
||||
: __base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
for (; __first != __last; ++__first)
|
||||
@@ -1217,7 +1217,7 @@ vector<_Tp, _Allocator>::vector(_ForwardIterator __first,
|
||||
typename iterator_traits<_ForwardIterator>::reference>::value,
|
||||
_ForwardIterator>::type __last)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
size_type __n = static_cast<size_type>(_VSTD::distance(__first, __last));
|
||||
@@ -1237,7 +1237,7 @@ vector<_Tp, _Allocator>::vector(_ForwardIterator __first, _ForwardIterator __las
|
||||
typename iterator_traits<_ForwardIterator>::reference>::value>::type*)
|
||||
: __base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
size_type __n = static_cast<size_type>(_VSTD::distance(__first, __last));
|
||||
@@ -1252,7 +1252,7 @@ template <class _Tp, class _Allocator>
|
||||
vector<_Tp, _Allocator>::vector(const vector& __x)
|
||||
: __base(__alloc_traits::select_on_container_copy_construction(__x.__alloc()))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
size_type __n = __x.size();
|
||||
@@ -1267,7 +1267,7 @@ template <class _Tp, class _Allocator>
|
||||
vector<_Tp, _Allocator>::vector(const vector& __x, const allocator_type& __a)
|
||||
: __base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
size_type __n = __x.size();
|
||||
@@ -1290,7 +1290,7 @@ vector<_Tp, _Allocator>::vector(vector&& __x)
|
||||
#endif
|
||||
: __base(_VSTD::move(__x.__alloc()))
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
__get_db()->swap(this, &__x);
|
||||
#endif
|
||||
@@ -1305,7 +1305,7 @@ inline _LIBCPP_INLINE_VISIBILITY
|
||||
vector<_Tp, _Allocator>::vector(vector&& __x, const allocator_type& __a)
|
||||
: __base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
if (__a == __x.__alloc())
|
||||
@@ -1314,7 +1314,7 @@ vector<_Tp, _Allocator>::vector(vector&& __x, const allocator_type& __a)
|
||||
this->__end_ = __x.__end_;
|
||||
this->__end_cap() = __x.__end_cap();
|
||||
__x.__begin_ = __x.__end_ = __x.__end_cap() = nullptr;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->swap(this, &__x);
|
||||
#endif
|
||||
}
|
||||
@@ -1329,7 +1329,7 @@ template <class _Tp, class _Allocator>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
vector<_Tp, _Allocator>::vector(initializer_list<value_type> __il)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
if (__il.size() > 0)
|
||||
@@ -1344,7 +1344,7 @@ inline _LIBCPP_INLINE_VISIBILITY
|
||||
vector<_Tp, _Allocator>::vector(initializer_list<value_type> __il, const allocator_type& __a)
|
||||
: __base(__a)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__insert_c(this);
|
||||
#endif
|
||||
if (__il.size() > 0)
|
||||
@@ -1390,7 +1390,7 @@ vector<_Tp, _Allocator>::__move_assign(vector& __c, true_type)
|
||||
this->__end_ = __c.__end_;
|
||||
this->__end_cap() = __c.__end_cap();
|
||||
__c.__begin_ = __c.__end_ = __c.__end_cap() = nullptr;
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->swap(this, &__c);
|
||||
#endif
|
||||
}
|
||||
@@ -1493,7 +1493,7 @@ inline _LIBCPP_INLINE_VISIBILITY
|
||||
typename vector<_Tp, _Allocator>::iterator
|
||||
vector<_Tp, _Allocator>::__make_iter(pointer __p) _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return iterator(this, __p);
|
||||
#else
|
||||
return iterator(__p);
|
||||
@@ -1505,7 +1505,7 @@ inline _LIBCPP_INLINE_VISIBILITY
|
||||
typename vector<_Tp, _Allocator>::const_iterator
|
||||
vector<_Tp, _Allocator>::__make_iter(const_pointer __p) const _NOEXCEPT
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
return const_iterator(this, __p);
|
||||
#else
|
||||
return const_iterator(__p);
|
||||
@@ -1709,7 +1709,7 @@ inline _LIBCPP_INLINE_VISIBILITY
|
||||
typename vector<_Tp, _Allocator>::iterator
|
||||
vector<_Tp, _Allocator>::erase(const_iterator __position)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,
|
||||
"vector::erase(iterator) called with an iterator not"
|
||||
" referring to this vector");
|
||||
@@ -1728,7 +1728,7 @@ template <class _Tp, class _Allocator>
|
||||
typename vector<_Tp, _Allocator>::iterator
|
||||
vector<_Tp, _Allocator>::erase(const_iterator __first, const_iterator __last)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__first) == this,
|
||||
"vector::erase(iterator, iterator) called with an iterator not"
|
||||
" referring to this vector");
|
||||
@@ -1769,7 +1769,7 @@ template <class _Tp, class _Allocator>
|
||||
typename vector<_Tp, _Allocator>::iterator
|
||||
vector<_Tp, _Allocator>::insert(const_iterator __position, const_reference __x)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,
|
||||
"vector::insert(iterator, x) called with an iterator not"
|
||||
" referring to this vector");
|
||||
@@ -1806,7 +1806,7 @@ template <class _Tp, class _Allocator>
|
||||
typename vector<_Tp, _Allocator>::iterator
|
||||
vector<_Tp, _Allocator>::insert(const_iterator __position, value_type&& __x)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,
|
||||
"vector::insert(iterator, x) called with an iterator not"
|
||||
" referring to this vector");
|
||||
@@ -1839,7 +1839,7 @@ template <class... _Args>
|
||||
typename vector<_Tp, _Allocator>::iterator
|
||||
vector<_Tp, _Allocator>::emplace(const_iterator __position, _Args&&... __args)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,
|
||||
"vector::emplace(iterator, x) called with an iterator not"
|
||||
" referring to this vector");
|
||||
@@ -1874,7 +1874,7 @@ template <class _Tp, class _Allocator>
|
||||
typename vector<_Tp, _Allocator>::iterator
|
||||
vector<_Tp, _Allocator>::insert(const_iterator __position, size_type __n, const_reference __x)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,
|
||||
"vector::insert(iterator, n, x) called with an iterator not"
|
||||
" referring to this vector");
|
||||
@@ -1925,7 +1925,7 @@ typename enable_if
|
||||
>::type
|
||||
vector<_Tp, _Allocator>::insert(const_iterator __position, _InputIterator __first, _InputIterator __last)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,
|
||||
"vector::insert(iterator, range) called with an iterator not"
|
||||
" referring to this vector");
|
||||
@@ -1978,7 +1978,7 @@ typename enable_if
|
||||
>::type
|
||||
vector<_Tp, _Allocator>::insert(const_iterator __position, _ForwardIterator __first, _ForwardIterator __last)
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
_LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,
|
||||
"vector::insert(iterator, range) called with an iterator not"
|
||||
" referring to this vector");
|
||||
@@ -2059,9 +2059,9 @@ vector<_Tp, _Allocator>::swap(vector& __x)
|
||||
_VSTD::swap(this->__end_cap(), __x.__end_cap());
|
||||
__swap_allocator(this->__alloc(), __x.__alloc(),
|
||||
integral_constant<bool,__alloc_traits::propagate_on_container_swap::value>());
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->swap(this, &__x);
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif
|
||||
}
|
||||
|
||||
template <class _Tp, class _Allocator>
|
||||
@@ -2085,7 +2085,7 @@ vector<_Tp, _Allocator>::__invariants() const
|
||||
return true;
|
||||
}
|
||||
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
template <class _Tp, class _Allocator>
|
||||
bool
|
||||
@@ -2117,16 +2117,16 @@ vector<_Tp, _Allocator>::__subscriptable(const const_iterator* __i, ptrdiff_t __
|
||||
return this->__begin_ <= __p && __p < this->__end_;
|
||||
}
|
||||
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif // _LIBCPP_DEBUG_LEVEL == 2
|
||||
|
||||
template <class _Tp, class _Allocator>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
void
|
||||
vector<_Tp, _Allocator>::__invalidate_all_iterators()
|
||||
{
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__get_db()->__invalidate_all(this);
|
||||
#endif // _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -2134,7 +2134,7 @@ template <class _Tp, class _Allocator>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
void
|
||||
vector<_Tp, _Allocator>::__invalidate_iterators_past(pointer __new_last) {
|
||||
#if _LIBCPP_DEBUG_LEVEL >= 2
|
||||
#if _LIBCPP_DEBUG_LEVEL == 2
|
||||
__c_node* __c = __get_db()->__find_c_and_lock(this);
|
||||
for (__i_node** __p = __c->end_; __p != __c->beg_; ) {
|
||||
--__p;
|
||||
|
||||
Reference in New Issue
Block a user