[libcxx-commits] [libcxx] c8246f6 - [libc++] Remove friend declarations from __tree (#133237)
via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Mar 28 12:50:26 PDT 2025
Author: Nikolas Klauser
Date: 2025-03-28T20:50:23+01:00
New Revision: c8246f69f4e17b877bf42643f3d4360a89232f68
URL: https://github.com/llvm/llvm-project/commit/c8246f69f4e17b877bf42643f3d4360a89232f68
DIFF: https://github.com/llvm/llvm-project/commit/c8246f69f4e17b877bf42643f3d4360a89232f68.diff
LOG: [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.
Added:
Modified:
libcxx/include/__tree
Removed:
################################################################################
diff --git a/libcxx/include/__tree b/libcxx/include/__tree
index 08ae8996f8f7d..9d28381c8c2ce 100644
--- a/libcxx/include/__tree
+++ b/libcxx/include/__tree
@@ -1225,11 +1225,6 @@ public:
_LIBCPP_HIDE_FROM_ABI __node_holder remove(const_iterator __p) _NOEXCEPT;
-private:
- _LIBCPP_HIDE_FROM_ABI __node_base_pointer& __find_leaf_low(__parent_pointer& __parent, const key_type& __v);
- _LIBCPP_HIDE_FROM_ABI __node_base_pointer& __find_leaf_high(__parent_pointer& __parent, const key_type& __v);
- _LIBCPP_HIDE_FROM_ABI __node_base_pointer&
- __find_leaf(const_iterator __hint, __parent_pointer& __parent, const key_type& __v);
// FIXME: Make this function const qualified. Unfortunately doing so
// breaks existing code which uses non-const callable comparators.
template <class _Key>
@@ -1242,12 +1237,6 @@ private:
_LIBCPP_HIDE_FROM_ABI __node_base_pointer&
__find_equal(const_iterator __hint, __parent_pointer& __parent, __node_base_pointer& __dummy, const _Key& __v);
- template <class... _Args>
- _LIBCPP_HIDE_FROM_ABI __node_holder __construct_node(_Args&&... __args);
-
- // TODO: Make this _LIBCPP_HIDE_FROM_ABI
- _LIBCPP_HIDDEN void destroy(__node_pointer __nd) _NOEXCEPT;
-
_LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const __tree& __t) {
__copy_assign_alloc(__t, integral_constant<bool, __node_traits::propagate_on_container_copy_assignment::value>());
}
@@ -1259,6 +1248,18 @@ private:
}
_LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const __tree&, false_type) {}
+private:
+ _LIBCPP_HIDE_FROM_ABI __node_base_pointer& __find_leaf_low(__parent_pointer& __parent, const key_type& __v);
+ _LIBCPP_HIDE_FROM_ABI __node_base_pointer& __find_leaf_high(__parent_pointer& __parent, const key_type& __v);
+ _LIBCPP_HIDE_FROM_ABI __node_base_pointer&
+ __find_leaf(const_iterator __hint, __parent_pointer& __parent, const key_type& __v);
+
+ template <class... _Args>
+ _LIBCPP_HIDE_FROM_ABI __node_holder __construct_node(_Args&&... __args);
+
+ // TODO: Make this _LIBCPP_HIDE_FROM_ABI
+ _LIBCPP_HIDDEN void destroy(__node_pointer __nd) _NOEXCEPT;
+
_LIBCPP_HIDE_FROM_ABI void __move_assign(__tree& __t, false_type);
_LIBCPP_HIDE_FROM_ABI void __move_assign(__tree& __t, true_type) _NOEXCEPT_(
is_nothrow_move_assignable<value_compare>::value&& is_nothrow_move_assignable<__node_allocator>::value);
@@ -1311,11 +1312,6 @@ private:
__node_pointer __cache_root_;
__node_pointer __cache_elem_;
};
-
- template <class, class, class, class>
- friend class _LIBCPP_TEMPLATE_VIS map;
- template <class, class, class, class>
- friend class _LIBCPP_TEMPLATE_VIS multimap;
};
template <class _Tp, class _Compare, class _Allocator>
More information about the libcxx-commits
mailing list