git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@127412 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f9b8998795
commit
d0a2fbfe60
@ -910,13 +910,12 @@ public:
|
|||||||
iterator __insert_multi(_V&& __v);
|
iterator __insert_multi(_V&& __v);
|
||||||
template <class _V>
|
template <class _V>
|
||||||
iterator __insert_multi(const_iterator __p, _V&& __v);
|
iterator __insert_multi(const_iterator __p, _V&& __v);
|
||||||
#else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||||
|
|
||||||
pair<iterator, bool> __insert_unique(const value_type& __v);
|
pair<iterator, bool> __insert_unique(const value_type& __v);
|
||||||
iterator __insert_unique(const_iterator __p, const value_type& __v);
|
iterator __insert_unique(const_iterator __p, const value_type& __v);
|
||||||
iterator __insert_multi(const value_type& __v);
|
iterator __insert_multi(const value_type& __v);
|
||||||
iterator __insert_multi(const_iterator __p, const value_type& __v);
|
iterator __insert_multi(const_iterator __p, const value_type& __v);
|
||||||
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
||||||
|
|
||||||
pair<iterator, bool> __node_insert_unique(__node_pointer __nd);
|
pair<iterator, bool> __node_insert_unique(__node_pointer __nd);
|
||||||
iterator __node_insert_unique(const_iterator __p,
|
iterator __node_insert_unique(const_iterator __p,
|
||||||
@ -1728,18 +1727,11 @@ template <class _V>
|
|||||||
pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>
|
pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>
|
||||||
__tree<_Tp, _Compare, _Allocator>::__insert_unique(_V&& __v)
|
__tree<_Tp, _Compare, _Allocator>::__insert_unique(_V&& __v)
|
||||||
{
|
{
|
||||||
__node_base_pointer __parent;
|
|
||||||
__node_base_pointer& __child = __find_equal(__parent, __v);
|
|
||||||
__node_pointer __r = static_cast<__node_pointer>(__child);
|
|
||||||
bool __inserted = false;
|
|
||||||
if (__child == nullptr)
|
|
||||||
{
|
|
||||||
__node_holder __h = __construct_node(_STD::forward<_V>(__v));
|
__node_holder __h = __construct_node(_STD::forward<_V>(__v));
|
||||||
__insert_node_at(__parent, __child, __h.get());
|
pair<iterator, bool> __r = __node_insert_unique(__h.get());
|
||||||
__r = __h.release();
|
if (__r.second)
|
||||||
__inserted = true;
|
__h.release();
|
||||||
}
|
return __r;
|
||||||
return pair<iterator, bool>(iterator(__r), __inserted);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class _Tp, class _Compare, class _Allocator>
|
template <class _Tp, class _Compare, class _Allocator>
|
||||||
@ -1747,16 +1739,11 @@ template <class _V>
|
|||||||
typename __tree<_Tp, _Compare, _Allocator>::iterator
|
typename __tree<_Tp, _Compare, _Allocator>::iterator
|
||||||
__tree<_Tp, _Compare, _Allocator>::__insert_unique(const_iterator __p, _V&& __v)
|
__tree<_Tp, _Compare, _Allocator>::__insert_unique(const_iterator __p, _V&& __v)
|
||||||
{
|
{
|
||||||
__node_base_pointer __parent;
|
|
||||||
__node_base_pointer& __child = __find_equal(__p, __parent, __v);
|
|
||||||
__node_pointer __r = static_cast<__node_pointer>(__child);
|
|
||||||
if (__child == nullptr)
|
|
||||||
{
|
|
||||||
__node_holder __h = __construct_node(_STD::forward<_V>(__v));
|
__node_holder __h = __construct_node(_STD::forward<_V>(__v));
|
||||||
__insert_node_at(__parent, __child, __h.get());
|
iterator __r = __node_insert_unique(__p, __h.get());
|
||||||
__r = __h.release();
|
if (__r.__ptr_ == __h.get())
|
||||||
}
|
__h.release();
|
||||||
return iterator(__r);
|
return __r;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class _Tp, class _Compare, class _Allocator>
|
template <class _Tp, class _Compare, class _Allocator>
|
||||||
@ -1796,6 +1783,8 @@ __tree<_Tp, _Compare, _Allocator>::__construct_node(const value_type& __v)
|
|||||||
return _STD::move(__h);
|
return _STD::move(__h);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||||
|
|
||||||
template <class _Tp, class _Compare, class _Allocator>
|
template <class _Tp, class _Compare, class _Allocator>
|
||||||
pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>
|
pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>
|
||||||
__tree<_Tp, _Compare, _Allocator>::__insert_unique(const value_type& __v)
|
__tree<_Tp, _Compare, _Allocator>::__insert_unique(const value_type& __v)
|
||||||
@ -1852,8 +1841,6 @@ __tree<_Tp, _Compare, _Allocator>::__insert_multi(const_iterator __p, const valu
|
|||||||
return iterator(__h.release());
|
return iterator(__h.release());
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
||||||
|
|
||||||
template <class _Tp, class _Compare, class _Allocator>
|
template <class _Tp, class _Compare, class _Allocator>
|
||||||
pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>
|
pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>
|
||||||
__tree<_Tp, _Compare, _Allocator>::__node_insert_unique(__node_pointer __nd)
|
__tree<_Tp, _Compare, _Allocator>::__node_insert_unique(__node_pointer __nd)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user