@@ -582,8 +582,10 @@ class _LIBCPP_STANDALONE_DEBUG __tree_node : public __tree_node_base<_VoidPtr> {
582582public:
583583 using __node_value_type _LIBCPP_NODEBUG = __get_node_value_type_t <_Tp>;
584584
585+ private:
585586 __node_value_type __value_;
586587
588+ public:
587589 _LIBCPP_HIDE_FROM_ABI __node_value_type& __get_value () { return __value_; }
588590
589591 ~__tree_node () = delete ;
@@ -614,7 +616,7 @@ public:
614616
615617 _LIBCPP_HIDE_FROM_ABI void operator ()(pointer __p) _NOEXCEPT {
616618 if (__value_constructed)
617- __alloc_traits::destroy (__na_, std::addressof (__p->__value_ ));
619+ __alloc_traits::destroy (__na_, std::addressof (__p->__get_value () ));
618620 if (__p)
619621 __alloc_traits::deallocate (__na_, __p, 1 );
620622 }
@@ -650,8 +652,10 @@ public:
650652
651653 _LIBCPP_HIDE_FROM_ABI __tree_iterator () _NOEXCEPT : __ptr_(nullptr ) {}
652654
653- _LIBCPP_HIDE_FROM_ABI reference operator *() const { return __get_np ()->__value_ ; }
654- _LIBCPP_HIDE_FROM_ABI pointer operator ->() const { return pointer_traits<pointer>::pointer_to (__get_np ()->__value_ ); }
655+ _LIBCPP_HIDE_FROM_ABI reference operator *() const { return __get_np ()->__get_value (); }
656+ _LIBCPP_HIDE_FROM_ABI pointer operator ->() const {
657+ return pointer_traits<pointer>::pointer_to (__get_np ()->__get_value ());
658+ }
655659
656660 _LIBCPP_HIDE_FROM_ABI __tree_iterator& operator ++() {
657661 __ptr_ = std::__tree_next_iter<__end_node_pointer>(static_cast <__node_base_pointer>(__ptr_));
@@ -712,8 +716,10 @@ public:
712716
713717 _LIBCPP_HIDE_FROM_ABI __tree_const_iterator (__non_const_iterator __p) _NOEXCEPT : __ptr_(__p.__ptr_) {}
714718
715- _LIBCPP_HIDE_FROM_ABI reference operator *() const { return __get_np ()->__value_ ; }
716- _LIBCPP_HIDE_FROM_ABI pointer operator ->() const { return pointer_traits<pointer>::pointer_to (__get_np ()->__value_ ); }
719+ _LIBCPP_HIDE_FROM_ABI reference operator *() const { return __get_np ()->__get_value (); }
720+ _LIBCPP_HIDE_FROM_ABI pointer operator ->() const {
721+ return pointer_traits<pointer>::pointer_to (__get_np ()->__get_value ());
722+ }
717723
718724 _LIBCPP_HIDE_FROM_ABI __tree_const_iterator& operator ++() {
719725 __ptr_ = std::__tree_next_iter<__end_node_pointer>(static_cast <__node_base_pointer>(__ptr_));
@@ -1226,7 +1232,7 @@ private:
12261232
12271233 auto __right = __ptr->__right_ ;
12281234
1229- __node_traits::destroy (__alloc_, std::addressof (__ptr->__value_ ));
1235+ __node_traits::destroy (__alloc_, std::addressof (__ptr->__get_value () ));
12301236 __node_traits::deallocate (__alloc_, __ptr, 1 );
12311237
12321238 (*this )(static_cast <__node_pointer>(__right));
@@ -1245,7 +1251,7 @@ private:
12451251 if (!__src)
12461252 return nullptr ;
12471253
1248- __node_holder __new_node = __construct_node (__src->__value_ );
1254+ __node_holder __new_node = __construct_node (__src->__get_value () );
12491255
12501256 unique_ptr<__node, __tree_deleter> __left (
12511257 __copy_construct_tree (static_cast <__node_pointer>(__src->__left_ )), __node_alloc_);
@@ -1276,7 +1282,7 @@ private:
12761282 return nullptr ;
12771283 }
12781284
1279- __assign_value (__dest->__value_ , __src->__value_ );
1285+ __assign_value (__dest->__get_value () , __src->__get_value () );
12801286 __dest->__is_black_ = __src->__is_black_ ;
12811287
12821288 // If we already have a left node in the destination tree, reuse it and copy-assign recursively
@@ -1417,7 +1423,7 @@ void __tree<_Tp, _Compare, _Allocator>::__assign_multi(_InputIterator __first, _
14171423 if (__size_ != 0 ) {
14181424 _DetachedTreeCache __cache (this );
14191425 for (; __cache.__get () && __first != __last; ++__first) {
1420- __assign_value (__cache.__get ()->__value_ , *__first);
1426+ __assign_value (__cache.__get ()->__get_value () , *__first);
14211427 __node_insert_multi (__cache.__get ());
14221428 __cache.__advance ();
14231429 }
@@ -1509,13 +1515,13 @@ void __tree<_Tp, _Compare, _Allocator>::__move_assign(__tree& __t, false_type) {
15091515 if (__size_ != 0 ) {
15101516 _DetachedTreeCache __cache (this );
15111517 while (__cache.__get () != nullptr && __t .__size_ != 0 ) {
1512- __assign_value (__cache.__get ()->__value_ , std::move (__t .remove (__t .begin ())->__value_ ));
1518+ __assign_value (__cache.__get ()->__get_value () , std::move (__t .remove (__t .begin ())->__get_value () ));
15131519 __node_insert_multi (__cache.__get ());
15141520 __cache.__advance ();
15151521 }
15161522 }
15171523 while (__t .__size_ != 0 ) {
1518- __insert_multi_from_orphaned_node (__e, std::move (__t .remove (__t .begin ())->__value_ ));
1524+ __insert_multi_from_orphaned_node (__e, std::move (__t .remove (__t .begin ())->__get_value () ));
15191525 }
15201526 }
15211527}
@@ -1583,7 +1589,7 @@ __tree<_Tp, _Compare, _Allocator>::__find_leaf_low(__end_node_pointer& __parent,
15831589 __node_pointer __nd = __root ();
15841590 if (__nd != nullptr ) {
15851591 while (true ) {
1586- if (value_comp ()(__nd->__value_ , __v)) {
1592+ if (value_comp ()(__nd->__get_value () , __v)) {
15871593 if (__nd->__right_ != nullptr )
15881594 __nd = static_cast <__node_pointer>(__nd->__right_ );
15891595 else {
@@ -1613,7 +1619,7 @@ __tree<_Tp, _Compare, _Allocator>::__find_leaf_high(__end_node_pointer& __parent
16131619 __node_pointer __nd = __root ();
16141620 if (__nd != nullptr ) {
16151621 while (true ) {
1616- if (value_comp ()(__v, __nd->__value_ )) {
1622+ if (value_comp ()(__v, __nd->__get_value () )) {
16171623 if (__nd->__left_ != nullptr )
16181624 __nd = static_cast <__node_pointer>(__nd->__left_ );
16191625 else {
@@ -1676,15 +1682,15 @@ __tree<_Tp, _Compare, _Allocator>::__find_equal(__end_node_pointer& __parent, co
16761682 __node_base_pointer* __nd_ptr = __root_ptr ();
16771683 if (__nd != nullptr ) {
16781684 while (true ) {
1679- if (value_comp ()(__v, __nd->__value_ )) {
1685+ if (value_comp ()(__v, __nd->__get_value () )) {
16801686 if (__nd->__left_ != nullptr ) {
16811687 __nd_ptr = std::addressof (__nd->__left_ );
16821688 __nd = static_cast <__node_pointer>(__nd->__left_ );
16831689 } else {
16841690 __parent = static_cast <__end_node_pointer>(__nd);
16851691 return __parent->__left_ ;
16861692 }
1687- } else if (value_comp ()(__nd->__value_ , __v)) {
1693+ } else if (value_comp ()(__nd->__get_value () , __v)) {
16881694 if (__nd->__right_ != nullptr ) {
16891695 __nd_ptr = std::addressof (__nd->__right_ );
16901696 __nd = static_cast <__node_pointer>(__nd->__right_ );
@@ -1808,7 +1814,7 @@ typename __tree<_Tp, _Compare, _Allocator>::__node_holder
18081814__tree<_Tp, _Compare, _Allocator>::__construct_node(_Args&&... __args) {
18091815 __node_allocator& __na = __node_alloc ();
18101816 __node_holder __h (__node_traits::allocate (__na, 1 ), _Dp (__na));
1811- __node_traits::construct (__na, std::addressof (__h->__value_ ), std::forward<_Args>(__args)...);
1817+ __node_traits::construct (__na, std::addressof (__h->__get_value () ), std::forward<_Args>(__args)...);
18121818 __h.get_deleter ().__value_constructed = true ;
18131819 return __h;
18141820}
@@ -1819,7 +1825,7 @@ pair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>
18191825__tree<_Tp, _Compare, _Allocator>::__emplace_unique_impl(_Args&&... __args) {
18201826 __node_holder __h = __construct_node (std::forward<_Args>(__args)...);
18211827 __end_node_pointer __parent;
1822- __node_base_pointer& __child = __find_equal (__parent, __h->__value_ );
1828+ __node_base_pointer& __child = __find_equal (__parent, __h->__get_value () );
18231829 __node_pointer __r = static_cast <__node_pointer>(__child);
18241830 bool __inserted = false ;
18251831 if (__child == nullptr ) {
@@ -1837,7 +1843,7 @@ __tree<_Tp, _Compare, _Allocator>::__emplace_hint_unique_impl(const_iterator __p
18371843 __node_holder __h = __construct_node (std::forward<_Args>(__args)...);
18381844 __end_node_pointer __parent;
18391845 __node_base_pointer __dummy;
1840- __node_base_pointer& __child = __find_equal (__p, __parent, __dummy, __h->__value_ );
1846+ __node_base_pointer& __child = __find_equal (__p, __parent, __dummy, __h->__get_value () );
18411847 __node_pointer __r = static_cast <__node_pointer>(__child);
18421848 if (__child == nullptr ) {
18431849 __insert_node_at (__parent, __child, static_cast <__node_base_pointer>(__h.get ()));
@@ -1852,7 +1858,7 @@ typename __tree<_Tp, _Compare, _Allocator>::iterator
18521858__tree<_Tp, _Compare, _Allocator>::__emplace_multi(_Args&&... __args) {
18531859 __node_holder __h = __construct_node (std::forward<_Args>(__args)...);
18541860 __end_node_pointer __parent;
1855- __node_base_pointer& __child = __find_leaf_high (__parent, __h->__value_ );
1861+ __node_base_pointer& __child = __find_leaf_high (__parent, __h->__get_value () );
18561862 __insert_node_at (__parent, __child, static_cast <__node_base_pointer>(__h.get ()));
18571863 return iterator (static_cast <__node_pointer>(__h.release ()));
18581864}
@@ -1863,7 +1869,7 @@ typename __tree<_Tp, _Compare, _Allocator>::iterator
18631869__tree<_Tp, _Compare, _Allocator>::__emplace_hint_multi(const_iterator __p, _Args&&... __args) {
18641870 __node_holder __h = __construct_node (std::forward<_Args>(__args)...);
18651871 __end_node_pointer __parent;
1866- __node_base_pointer& __child = __find_leaf (__p, __parent, __h->__value_ );
1872+ __node_base_pointer& __child = __find_leaf (__p, __parent, __h->__get_value () );
18671873 __insert_node_at (__parent, __child, static_cast <__node_base_pointer>(__h.get ()));
18681874 return iterator (static_cast <__node_pointer>(__h.release ()));
18691875}
@@ -1876,7 +1882,7 @@ __tree<_Tp, _Compare, _Allocator>::__node_assign_unique(const value_type& __v, _
18761882 __node_pointer __r = static_cast <__node_pointer>(__child);
18771883 bool __inserted = false ;
18781884 if (__child == nullptr ) {
1879- __assign_value (__nd->__value_ , __v);
1885+ __assign_value (__nd->__get_value () , __v);
18801886 __insert_node_at (__parent, __child, static_cast <__node_base_pointer>(__nd));
18811887 __r = __nd;
18821888 __inserted = true ;
@@ -1888,7 +1894,7 @@ template <class _Tp, class _Compare, class _Allocator>
18881894typename __tree<_Tp, _Compare, _Allocator>::iterator
18891895__tree<_Tp, _Compare, _Allocator>::__node_insert_multi(__node_pointer __nd) {
18901896 __end_node_pointer __parent;
1891- __node_base_pointer& __child = __find_leaf_high (__parent, __nd->__value_ );
1897+ __node_base_pointer& __child = __find_leaf_high (__parent, __nd->__get_value () );
18921898 __insert_node_at (__parent, __child, static_cast <__node_base_pointer>(__nd));
18931899 return iterator (__nd);
18941900}
@@ -1897,7 +1903,7 @@ template <class _Tp, class _Compare, class _Allocator>
18971903typename __tree<_Tp, _Compare, _Allocator>::iterator
18981904__tree<_Tp, _Compare, _Allocator>::__node_insert_multi(const_iterator __p, __node_pointer __nd) {
18991905 __end_node_pointer __parent;
1900- __node_base_pointer& __child = __find_leaf (__p, __parent, __nd->__value_ );
1906+ __node_base_pointer& __child = __find_leaf (__p, __parent, __nd->__get_value () );
19011907 __insert_node_at (__parent, __child, static_cast <__node_base_pointer>(__nd));
19021908 return iterator (__nd);
19031909}
@@ -1924,7 +1930,7 @@ __tree<_Tp, _Compare, _Allocator>::__node_handle_insert_unique(_NodeHandle&& __n
19241930
19251931 __node_pointer __ptr = __nh.__ptr_ ;
19261932 __end_node_pointer __parent;
1927- __node_base_pointer& __child = __find_equal (__parent, __ptr->__value_ );
1933+ __node_base_pointer& __child = __find_equal (__parent, __ptr->__get_value () );
19281934 if (__child != nullptr )
19291935 return _InsertReturnType{iterator (static_cast <__node_pointer>(__child)), false , std::move (__nh)};
19301936
@@ -1943,7 +1949,7 @@ __tree<_Tp, _Compare, _Allocator>::__node_handle_insert_unique(const_iterator __
19431949 __node_pointer __ptr = __nh.__ptr_ ;
19441950 __end_node_pointer __parent;
19451951 __node_base_pointer __dummy;
1946- __node_base_pointer& __child = __find_equal (__hint, __parent, __dummy, __ptr->__value_ );
1952+ __node_base_pointer& __child = __find_equal (__hint, __parent, __dummy, __ptr->__get_value () );
19471953 __node_pointer __r = static_cast <__node_pointer>(__child);
19481954 if (__child == nullptr ) {
19491955 __insert_node_at (__parent, __child, static_cast <__node_base_pointer>(__ptr));
@@ -1978,7 +1984,7 @@ _LIBCPP_HIDE_FROM_ABI void __tree<_Tp, _Compare, _Allocator>::__node_handle_merg
19781984 for (typename _Tree::iterator __i = __source.begin (); __i != __source.end ();) {
19791985 __node_pointer __src_ptr = __i.__get_np ();
19801986 __end_node_pointer __parent;
1981- __node_base_pointer& __child = __find_equal (__parent, __src_ptr->__value_ );
1987+ __node_base_pointer& __child = __find_equal (__parent, __src_ptr->__get_value () );
19821988 ++__i;
19831989 if (__child != nullptr )
19841990 continue ;
@@ -1995,7 +2001,7 @@ __tree<_Tp, _Compare, _Allocator>::__node_handle_insert_multi(_NodeHandle&& __nh
19952001 return end ();
19962002 __node_pointer __ptr = __nh.__ptr_ ;
19972003 __end_node_pointer __parent;
1998- __node_base_pointer& __child = __find_leaf_high (__parent, __ptr->__value_ );
2004+ __node_base_pointer& __child = __find_leaf_high (__parent, __ptr->__get_value () );
19992005 __insert_node_at (__parent, __child, static_cast <__node_base_pointer>(__ptr));
20002006 __nh.__release_ptr ();
20012007 return iterator (__ptr);
@@ -2010,7 +2016,7 @@ __tree<_Tp, _Compare, _Allocator>::__node_handle_insert_multi(const_iterator __h
20102016
20112017 __node_pointer __ptr = __nh.__ptr_ ;
20122018 __end_node_pointer __parent;
2013- __node_base_pointer& __child = __find_leaf (__hint, __parent, __ptr->__value_ );
2019+ __node_base_pointer& __child = __find_leaf (__hint, __parent, __ptr->__get_value () );
20142020 __insert_node_at (__parent, __child, static_cast <__node_base_pointer>(__ptr));
20152021 __nh.__release_ptr ();
20162022 return iterator (__ptr);
@@ -2024,7 +2030,7 @@ _LIBCPP_HIDE_FROM_ABI void __tree<_Tp, _Compare, _Allocator>::__node_handle_merg
20242030 for (typename _Tree::iterator __i = __source.begin (); __i != __source.end ();) {
20252031 __node_pointer __src_ptr = __i.__get_np ();
20262032 __end_node_pointer __parent;
2027- __node_base_pointer& __child = __find_leaf_high (__parent, __src_ptr->__value_ );
2033+ __node_base_pointer& __child = __find_leaf_high (__parent, __src_ptr->__get_value () );
20282034 ++__i;
20292035 __source.__remove_node_pointer (__src_ptr);
20302036 __insert_node_at (__parent, __child, static_cast <__node_base_pointer>(__src_ptr));
@@ -2079,9 +2085,9 @@ typename __tree<_Tp, _Compare, _Allocator>::size_type
20792085__tree<_Tp, _Compare, _Allocator>::__count_unique(const _Key& __k) const {
20802086 __node_pointer __rt = __root ();
20812087 while (__rt != nullptr ) {
2082- if (value_comp ()(__k, __rt->__value_ )) {
2088+ if (value_comp ()(__k, __rt->__get_value () )) {
20832089 __rt = static_cast <__node_pointer>(__rt->__left_ );
2084- } else if (value_comp ()(__rt->__value_ , __k))
2090+ } else if (value_comp ()(__rt->__get_value () , __k))
20852091 __rt = static_cast <__node_pointer>(__rt->__right_ );
20862092 else
20872093 return 1 ;
@@ -2096,10 +2102,10 @@ __tree<_Tp, _Compare, _Allocator>::__count_multi(const _Key& __k) const {
20962102 __end_node_pointer __result = __end_node ();
20972103 __node_pointer __rt = __root ();
20982104 while (__rt != nullptr ) {
2099- if (value_comp ()(__k, __rt->__value_ )) {
2105+ if (value_comp ()(__k, __rt->__get_value () )) {
21002106 __result = static_cast <__end_node_pointer>(__rt);
21012107 __rt = static_cast <__node_pointer>(__rt->__left_ );
2102- } else if (value_comp ()(__rt->__value_ , __k))
2108+ } else if (value_comp ()(__rt->__get_value () , __k))
21032109 __rt = static_cast <__node_pointer>(__rt->__right_ );
21042110 else
21052111 return std::distance (
@@ -2114,7 +2120,7 @@ template <class _Key>
21142120typename __tree<_Tp, _Compare, _Allocator>::iterator
21152121__tree<_Tp, _Compare, _Allocator>::__lower_bound(const _Key& __v, __node_pointer __root, __end_node_pointer __result) {
21162122 while (__root != nullptr ) {
2117- if (!value_comp ()(__root->__value_ , __v)) {
2123+ if (!value_comp ()(__root->__get_value () , __v)) {
21182124 __result = static_cast <__end_node_pointer>(__root);
21192125 __root = static_cast <__node_pointer>(__root->__left_ );
21202126 } else
@@ -2128,7 +2134,7 @@ template <class _Key>
21282134typename __tree<_Tp, _Compare, _Allocator>::const_iterator __tree<_Tp, _Compare, _Allocator>::__lower_bound(
21292135 const _Key& __v, __node_pointer __root, __end_node_pointer __result) const {
21302136 while (__root != nullptr ) {
2131- if (!value_comp ()(__root->__value_ , __v)) {
2137+ if (!value_comp ()(__root->__get_value () , __v)) {
21322138 __result = static_cast <__end_node_pointer>(__root);
21332139 __root = static_cast <__node_pointer>(__root->__left_ );
21342140 } else
@@ -2142,7 +2148,7 @@ template <class _Key>
21422148typename __tree<_Tp, _Compare, _Allocator>::iterator
21432149__tree<_Tp, _Compare, _Allocator>::__upper_bound(const _Key& __v, __node_pointer __root, __end_node_pointer __result) {
21442150 while (__root != nullptr ) {
2145- if (value_comp ()(__v, __root->__value_ )) {
2151+ if (value_comp ()(__v, __root->__get_value () )) {
21462152 __result = static_cast <__end_node_pointer>(__root);
21472153 __root = static_cast <__node_pointer>(__root->__left_ );
21482154 } else
@@ -2156,7 +2162,7 @@ template <class _Key>
21562162typename __tree<_Tp, _Compare, _Allocator>::const_iterator __tree<_Tp, _Compare, _Allocator>::__upper_bound(
21572163 const _Key& __v, __node_pointer __root, __end_node_pointer __result) const {
21582164 while (__root != nullptr ) {
2159- if (value_comp ()(__v, __root->__value_ )) {
2165+ if (value_comp ()(__v, __root->__get_value () )) {
21602166 __result = static_cast <__end_node_pointer>(__root);
21612167 __root = static_cast <__node_pointer>(__root->__left_ );
21622168 } else
@@ -2173,10 +2179,10 @@ __tree<_Tp, _Compare, _Allocator>::__equal_range_unique(const _Key& __k) {
21732179 __end_node_pointer __result = __end_node ();
21742180 __node_pointer __rt = __root ();
21752181 while (__rt != nullptr ) {
2176- if (value_comp ()(__k, __rt->__value_ )) {
2182+ if (value_comp ()(__k, __rt->__get_value () )) {
21772183 __result = static_cast <__end_node_pointer>(__rt);
21782184 __rt = static_cast <__node_pointer>(__rt->__left_ );
2179- } else if (value_comp ()(__rt->__value_ , __k))
2185+ } else if (value_comp ()(__rt->__get_value () , __k))
21802186 __rt = static_cast <__node_pointer>(__rt->__right_ );
21812187 else
21822188 return _Pp (iterator (__rt),
@@ -2195,10 +2201,10 @@ __tree<_Tp, _Compare, _Allocator>::__equal_range_unique(const _Key& __k) const {
21952201 __end_node_pointer __result = __end_node ();
21962202 __node_pointer __rt = __root ();
21972203 while (__rt != nullptr ) {
2198- if (value_comp ()(__k, __rt->__value_ )) {
2204+ if (value_comp ()(__k, __rt->__get_value () )) {
21992205 __result = static_cast <__end_node_pointer>(__rt);
22002206 __rt = static_cast <__node_pointer>(__rt->__left_ );
2201- } else if (value_comp ()(__rt->__value_ , __k))
2207+ } else if (value_comp ()(__rt->__get_value () , __k))
22022208 __rt = static_cast <__node_pointer>(__rt->__right_ );
22032209 else
22042210 return _Pp (
@@ -2217,10 +2223,10 @@ __tree<_Tp, _Compare, _Allocator>::__equal_range_multi(const _Key& __k) {
22172223 __end_node_pointer __result = __end_node ();
22182224 __node_pointer __rt = __root ();
22192225 while (__rt != nullptr ) {
2220- if (value_comp ()(__k, __rt->__value_ )) {
2226+ if (value_comp ()(__k, __rt->__get_value () )) {
22212227 __result = static_cast <__end_node_pointer>(__rt);
22222228 __rt = static_cast <__node_pointer>(__rt->__left_ );
2223- } else if (value_comp ()(__rt->__value_ , __k))
2229+ } else if (value_comp ()(__rt->__get_value () , __k))
22242230 __rt = static_cast <__node_pointer>(__rt->__right_ );
22252231 else
22262232 return _Pp (__lower_bound (__k, static_cast <__node_pointer>(__rt->__left_ ), static_cast <__end_node_pointer>(__rt)),
@@ -2238,10 +2244,10 @@ __tree<_Tp, _Compare, _Allocator>::__equal_range_multi(const _Key& __k) const {
22382244 __end_node_pointer __result = __end_node ();
22392245 __node_pointer __rt = __root ();
22402246 while (__rt != nullptr ) {
2241- if (value_comp ()(__k, __rt->__value_ )) {
2247+ if (value_comp ()(__k, __rt->__get_value () )) {
22422248 __result = static_cast <__end_node_pointer>(__rt);
22432249 __rt = static_cast <__node_pointer>(__rt->__left_ );
2244- } else if (value_comp ()(__rt->__value_ , __k))
2250+ } else if (value_comp ()(__rt->__get_value () , __k))
22452251 __rt = static_cast <__node_pointer>(__rt->__right_ );
22462252 else
22472253 return _Pp (__lower_bound (__k, static_cast <__node_pointer>(__rt->__left_ ), static_cast <__end_node_pointer>(__rt)),
0 commit comments