@@ -855,17 +855,11 @@ public:
855855
856856private:
857857 _LIBCPP_HIDE_FROM_ABI const __node_allocator& __node_alloc () const _NOEXCEPT { return __node_alloc_; }
858- _LIBCPP_HIDE_FROM_ABI __end_node_pointer& __begin_node () _NOEXCEPT { return __begin_node_; }
859- _LIBCPP_HIDE_FROM_ABI const __end_node_pointer& __begin_node () const _NOEXCEPT { return __begin_node_; }
860858
861859public:
862860 _LIBCPP_HIDE_FROM_ABI allocator_type __alloc () const _NOEXCEPT { return allocator_type (__node_alloc ()); }
863861
864- private:
865- _LIBCPP_HIDE_FROM_ABI size_type& size () _NOEXCEPT { return __size_; }
866-
867- public:
868- _LIBCPP_HIDE_FROM_ABI const size_type& size () const _NOEXCEPT { return __size_; }
862+ _LIBCPP_HIDE_FROM_ABI size_type size () const _NOEXCEPT { return __size_; }
869863 _LIBCPP_HIDE_FROM_ABI value_compare& value_comp () _NOEXCEPT { return __value_comp_; }
870864 _LIBCPP_HIDE_FROM_ABI const value_compare& value_comp () const _NOEXCEPT { return __value_comp_; }
871865
@@ -902,8 +896,8 @@ public:
902896
903897 _LIBCPP_HIDE_FROM_ABI ~__tree ();
904898
905- _LIBCPP_HIDE_FROM_ABI iterator begin () _NOEXCEPT { return iterator (__begin_node () ); }
906- _LIBCPP_HIDE_FROM_ABI const_iterator begin () const _NOEXCEPT { return const_iterator (__begin_node () ); }
899+ _LIBCPP_HIDE_FROM_ABI iterator begin () _NOEXCEPT { return iterator (__begin_node_ ); }
900+ _LIBCPP_HIDE_FROM_ABI const_iterator begin () const _NOEXCEPT { return const_iterator (__begin_node_ ); }
907901 _LIBCPP_HIDE_FROM_ABI iterator end () _NOEXCEPT { return iterator (__end_node ()); }
908902 _LIBCPP_HIDE_FROM_ABI const_iterator end () const _NOEXCEPT { return const_iterator (__end_node ()); }
909903
@@ -1225,30 +1219,30 @@ template <class _Tp, class _Compare, class _Allocator>
12251219__tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp) _NOEXCEPT_(
12261220 is_nothrow_default_constructible<__node_allocator>::value&& is_nothrow_copy_constructible<value_compare>::value)
12271221 : __size_(0 ), __value_comp_(__comp) {
1228- __begin_node () = __end_node ();
1222+ __begin_node_ = __end_node ();
12291223}
12301224
12311225template <class _Tp , class _Compare , class _Allocator >
12321226__tree<_Tp, _Compare, _Allocator>::__tree(const allocator_type& __a)
12331227 : __begin_node_(), __node_alloc_(__node_allocator(__a)), __size_(0 ) {
1234- __begin_node () = __end_node ();
1228+ __begin_node_ = __end_node ();
12351229}
12361230
12371231template <class _Tp , class _Compare , class _Allocator >
12381232__tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp, const allocator_type& __a)
12391233 : __begin_node_(), __node_alloc_(__node_allocator(__a)), __size_(0 ), __value_comp_(__comp) {
1240- __begin_node () = __end_node ();
1234+ __begin_node_ = __end_node ();
12411235}
12421236
1243- // Precondition: size() != 0
1237+ // Precondition: __size_ != 0
12441238template <class _Tp , class _Compare , class _Allocator >
12451239typename __tree<_Tp, _Compare, _Allocator>::__node_pointer
12461240__tree<_Tp, _Compare, _Allocator>::_DetachedTreeCache::__detach_from_tree(__tree* __t ) _NOEXCEPT {
1247- __node_pointer __cache = static_cast <__node_pointer>(__t ->__begin_node () );
1248- __t ->__begin_node () = __t ->__end_node ();
1241+ __node_pointer __cache = static_cast <__node_pointer>(__t ->__begin_node_ );
1242+ __t ->__begin_node_ = __t ->__end_node ();
12491243 __t ->__end_node ()->__left_ ->__parent_ = nullptr ;
12501244 __t ->__end_node ()->__left_ = nullptr ;
1251- __t ->size () = 0 ;
1245+ __t ->__size_ = 0 ;
12521246 // __cache->__left_ == nullptr
12531247 if (__cache->__right_ != nullptr )
12541248 __cache = static_cast <__node_pointer>(__cache->__right_ );
@@ -1300,7 +1294,7 @@ void __tree<_Tp, _Compare, _Allocator>::__assign_unique(_ForwardIterator __first
13001294 is_same<_ItValueType, value_type>::value, " __assign_unique may only be called with the containers value type" );
13011295 static_assert (
13021296 __has_forward_iterator_category<_ForwardIterator>::value, " __assign_unique requires a forward iterator" );
1303- if (size () != 0 ) {
1297+ if (__size_ != 0 ) {
13041298 _DetachedTreeCache __cache (this );
13051299 for (; __cache.__get () != nullptr && __first != __last; ++__first) {
13061300 if (__node_assign_unique (*__first, __cache.__get ()).second )
@@ -1318,7 +1312,7 @@ void __tree<_Tp, _Compare, _Allocator>::__assign_multi(_InputIterator __first, _
13181312 typedef typename _ITraits::value_type _ItValueType;
13191313 static_assert (
13201314 is_same<_ItValueType, value_type>::value, " __assign_multi may only be called with the containers value_type" );
1321- if (size () != 0 ) {
1315+ if (__size_ != 0 ) {
13221316 _DetachedTreeCache __cache (this );
13231317 for (; __cache.__get () && __first != __last; ++__first) {
13241318 __assign_value (__cache.__get ()->__value_ , *__first);
@@ -1337,7 +1331,7 @@ __tree<_Tp, _Compare, _Allocator>::__tree(const __tree& __t)
13371331 __node_alloc_ (__node_traits::select_on_container_copy_construction(__t .__node_alloc())),
13381332 __size_(0 ),
13391333 __value_comp_(__t .value_comp()) {
1340- __begin_node () = __end_node ();
1334+ __begin_node_ = __end_node ();
13411335}
13421336
13431337template <class _Tp , class _Compare , class _Allocator >
@@ -1348,33 +1342,33 @@ __tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t) _NOEXCEPT_(
13481342 __node_alloc_(std::move(__t .__node_alloc_)),
13491343 __size_(__t .__size_),
13501344 __value_comp_(std::move(__t .__value_comp_)) {
1351- if (size () == 0 )
1352- __begin_node () = __end_node ();
1345+ if (__size_ == 0 )
1346+ __begin_node_ = __end_node ();
13531347 else {
13541348 __end_node ()->__left_ ->__parent_ = static_cast <__end_node_pointer>(__end_node ());
1355- __t .__begin_node () = __t .__end_node ();
1349+ __t .__begin_node_ = __t .__end_node ();
13561350 __t .__end_node ()->__left_ = nullptr ;
1357- __t .size () = 0 ;
1351+ __t .__size_ = 0 ;
13581352 }
13591353}
13601354
13611355template <class _Tp , class _Compare , class _Allocator >
13621356__tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t , const allocator_type& __a)
13631357 : __node_alloc_(__node_allocator(__a)), __size_(0 ), __value_comp_(std::move(__t .value_comp())) {
13641358 if (__a == __t .__alloc ()) {
1365- if (__t .size () == 0 )
1366- __begin_node () = __end_node ();
1359+ if (__t .__size_ == 0 )
1360+ __begin_node_ = __end_node ();
13671361 else {
1368- __begin_node () = __t .__begin_node () ;
1362+ __begin_node_ = __t .__begin_node_ ;
13691363 __end_node ()->__left_ = __t .__end_node ()->__left_ ;
13701364 __end_node ()->__left_ ->__parent_ = static_cast <__end_node_pointer>(__end_node ());
1371- size () = __t .size () ;
1372- __t .__begin_node () = __t .__end_node ();
1365+ __size_ = __t .__size_ ;
1366+ __t .__begin_node_ = __t .__end_node ();
13731367 __t .__end_node ()->__left_ = nullptr ;
1374- __t .size () = 0 ;
1368+ __t .__size_ = 0 ;
13751369 }
13761370 } else {
1377- __begin_node () = __end_node ();
1371+ __begin_node_ = __end_node ();
13781372 }
13791373}
13801374
@@ -1387,13 +1381,13 @@ void __tree<_Tp, _Compare, _Allocator>::__move_assign(__tree& __t, true_type)
13871381 __move_assign_alloc (__t );
13881382 __size_ = __t .__size_ ;
13891383 __value_comp_ = std::move (__t .__value_comp_ );
1390- if (size () == 0 )
1391- __begin_node () = __end_node ();
1384+ if (__size_ == 0 )
1385+ __begin_node_ = __end_node ();
13921386 else {
13931387 __end_node ()->__left_ ->__parent_ = static_cast <__end_node_pointer>(__end_node ());
1394- __t .__begin_node () = __t .__end_node ();
1388+ __t .__begin_node_ = __t .__end_node ();
13951389 __t .__end_node ()->__left_ = nullptr ;
1396- __t .size () = 0 ;
1390+ __t .__size_ = 0 ;
13971391 }
13981392}
13991393
@@ -1404,15 +1398,15 @@ void __tree<_Tp, _Compare, _Allocator>::__move_assign(__tree& __t, false_type) {
14041398 else {
14051399 value_comp () = std::move (__t .value_comp ());
14061400 const_iterator __e = end ();
1407- if (size () != 0 ) {
1401+ if (__size_ != 0 ) {
14081402 _DetachedTreeCache __cache (this );
1409- while (__cache.__get () != nullptr && __t .size () != 0 ) {
1403+ while (__cache.__get () != nullptr && __t .__size_ != 0 ) {
14101404 __assign_value (__cache.__get ()->__value_ , std::move (__t .remove (__t .begin ())->__value_ ));
14111405 __node_insert_multi (__cache.__get ());
14121406 __cache.__advance ();
14131407 }
14141408 }
1415- while (__t .size () != 0 ) {
1409+ while (__t .__size_ != 0 ) {
14161410 __insert_multi_from_orphaned_node (__e, std::move (__t .remove (__t .begin ())->__value_ ));
14171411 }
14181412 }
@@ -1460,21 +1454,21 @@ void __tree<_Tp, _Compare, _Allocator>::swap(__tree& __t)
14601454 std::__swap_allocator (__node_alloc (), __t .__node_alloc ());
14611455 swap (__size_, __t .__size_ );
14621456 swap (__value_comp_, __t .__value_comp_ );
1463- if (size () == 0 )
1464- __begin_node () = __end_node ();
1457+ if (__size_ == 0 )
1458+ __begin_node_ = __end_node ();
14651459 else
14661460 __end_node ()->__left_ ->__parent_ = __end_node ();
1467- if (__t .size () == 0 )
1468- __t .__begin_node () = __t .__end_node ();
1461+ if (__t .__size_ == 0 )
1462+ __t .__begin_node_ = __t .__end_node ();
14691463 else
14701464 __t .__end_node ()->__left_ ->__parent_ = __t .__end_node ();
14711465}
14721466
14731467template <class _Tp , class _Compare , class _Allocator >
14741468void __tree<_Tp, _Compare, _Allocator>::clear() _NOEXCEPT {
14751469 destroy (__root ());
1476- size () = 0 ;
1477- __begin_node () = __end_node ();
1470+ __size_ = 0 ;
1471+ __begin_node_ = __end_node ();
14781472 __end_node ()->__left_ = nullptr ;
14791473}
14801474
@@ -1664,10 +1658,10 @@ void __tree<_Tp, _Compare, _Allocator>::__insert_node_at(
16641658 __new_node->__parent_ = __parent;
16651659 // __new_node->__is_black_ is initialized in __tree_balance_after_insert
16661660 __child = __new_node;
1667- if (__begin_node () ->__left_ != nullptr )
1668- __begin_node () = static_cast <__end_node_pointer>(__begin_node () ->__left_ );
1661+ if (__begin_node_ ->__left_ != nullptr )
1662+ __begin_node_ = static_cast <__end_node_pointer>(__begin_node_ ->__left_ );
16691663 std::__tree_balance_after_insert (__end_node ()->__left_ , __child);
1670- ++size () ;
1664+ ++__size_ ;
16711665}
16721666
16731667template <class _Tp , class _Compare , class _Allocator >
@@ -1811,9 +1805,9 @@ typename __tree<_Tp, _Compare, _Allocator>::iterator
18111805__tree<_Tp, _Compare, _Allocator>::__remove_node_pointer(__node_pointer __ptr) _NOEXCEPT {
18121806 iterator __r (__ptr);
18131807 ++__r;
1814- if (__begin_node () == __ptr)
1815- __begin_node () = __r.__ptr_ ;
1816- --size () ;
1808+ if (__begin_node_ == __ptr)
1809+ __begin_node_ = __r.__ptr_ ;
1810+ --__size_ ;
18171811 std::__tree_remove (__end_node ()->__left_ , static_cast <__node_base_pointer>(__ptr));
18181812 return __r;
18191813}
@@ -2177,13 +2171,13 @@ template <class _Tp, class _Compare, class _Allocator>
21772171typename __tree<_Tp, _Compare, _Allocator>::__node_holder
21782172__tree<_Tp, _Compare, _Allocator>::remove(const_iterator __p) _NOEXCEPT {
21792173 __node_pointer __np = __p.__get_np ();
2180- if (__begin_node () == __p.__ptr_ ) {
2174+ if (__begin_node_ == __p.__ptr_ ) {
21812175 if (__np->__right_ != nullptr )
2182- __begin_node () = static_cast <__end_node_pointer>(__np->__right_ );
2176+ __begin_node_ = static_cast <__end_node_pointer>(__np->__right_ );
21832177 else
2184- __begin_node () = static_cast <__end_node_pointer>(__np->__parent_ );
2178+ __begin_node_ = static_cast <__end_node_pointer>(__np->__parent_ );
21852179 }
2186- --size () ;
2180+ --__size_ ;
21872181 std::__tree_remove (__end_node ()->__left_ , static_cast <__node_base_pointer>(__np));
21882182 return __node_holder (__np, _Dp (__node_alloc (), true ));
21892183}
0 commit comments