Skip to content

Commit c8246f6

Browse files
authored
[libc++] Remove friend declarations from __tree (#133237)
Instead, make the few functions `map` relies on public. This makes it more clear what is private to `__tree` and what is part of the library-internal interface.
1 parent d4dc571 commit c8246f6

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

libcxx/include/__tree

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1225,11 +1225,6 @@ public:
12251225

12261226
_LIBCPP_HIDE_FROM_ABI __node_holder remove(const_iterator __p) _NOEXCEPT;
12271227

1228-
private:
1229-
_LIBCPP_HIDE_FROM_ABI __node_base_pointer& __find_leaf_low(__parent_pointer& __parent, const key_type& __v);
1230-
_LIBCPP_HIDE_FROM_ABI __node_base_pointer& __find_leaf_high(__parent_pointer& __parent, const key_type& __v);
1231-
_LIBCPP_HIDE_FROM_ABI __node_base_pointer&
1232-
__find_leaf(const_iterator __hint, __parent_pointer& __parent, const key_type& __v);
12331228
// FIXME: Make this function const qualified. Unfortunately doing so
12341229
// breaks existing code which uses non-const callable comparators.
12351230
template <class _Key>
@@ -1242,12 +1237,6 @@ private:
12421237
_LIBCPP_HIDE_FROM_ABI __node_base_pointer&
12431238
__find_equal(const_iterator __hint, __parent_pointer& __parent, __node_base_pointer& __dummy, const _Key& __v);
12441239

1245-
template <class... _Args>
1246-
_LIBCPP_HIDE_FROM_ABI __node_holder __construct_node(_Args&&... __args);
1247-
1248-
// TODO: Make this _LIBCPP_HIDE_FROM_ABI
1249-
_LIBCPP_HIDDEN void destroy(__node_pointer __nd) _NOEXCEPT;
1250-
12511240
_LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const __tree& __t) {
12521241
__copy_assign_alloc(__t, integral_constant<bool, __node_traits::propagate_on_container_copy_assignment::value>());
12531242
}
@@ -1259,6 +1248,18 @@ private:
12591248
}
12601249
_LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const __tree&, false_type) {}
12611250

1251+
private:
1252+
_LIBCPP_HIDE_FROM_ABI __node_base_pointer& __find_leaf_low(__parent_pointer& __parent, const key_type& __v);
1253+
_LIBCPP_HIDE_FROM_ABI __node_base_pointer& __find_leaf_high(__parent_pointer& __parent, const key_type& __v);
1254+
_LIBCPP_HIDE_FROM_ABI __node_base_pointer&
1255+
__find_leaf(const_iterator __hint, __parent_pointer& __parent, const key_type& __v);
1256+
1257+
template <class... _Args>
1258+
_LIBCPP_HIDE_FROM_ABI __node_holder __construct_node(_Args&&... __args);
1259+
1260+
// TODO: Make this _LIBCPP_HIDE_FROM_ABI
1261+
_LIBCPP_HIDDEN void destroy(__node_pointer __nd) _NOEXCEPT;
1262+
12621263
_LIBCPP_HIDE_FROM_ABI void __move_assign(__tree& __t, false_type);
12631264
_LIBCPP_HIDE_FROM_ABI void __move_assign(__tree& __t, true_type) _NOEXCEPT_(
12641265
is_nothrow_move_assignable<value_compare>::value&& is_nothrow_move_assignable<__node_allocator>::value);
@@ -1311,11 +1312,6 @@ private:
13111312
__node_pointer __cache_root_;
13121313
__node_pointer __cache_elem_;
13131314
};
1314-
1315-
template <class, class, class, class>
1316-
friend class _LIBCPP_TEMPLATE_VIS map;
1317-
template <class, class, class, class>
1318-
friend class _LIBCPP_TEMPLATE_VIS multimap;
13191315
};
13201316

13211317
template <class _Tp, class _Compare, class _Allocator>

0 commit comments

Comments
 (0)