Skip to content

[libc++] Remove unnecessary friend declarations from <__tree> #152133

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions libcxx/include/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -447,14 +447,12 @@ set(files
__fwd/get.h
__fwd/ios.h
__fwd/istream.h
__fwd/map.h
__fwd/mdspan.h
__fwd/memory.h
__fwd/memory_resource.h
__fwd/ostream.h
__fwd/pair.h
__fwd/queue.h
__fwd/set.h
__fwd/span.h
__fwd/sstream.h
__fwd/stack.h
Expand Down
31 changes: 0 additions & 31 deletions libcxx/include/__fwd/map.h

This file was deleted.

30 changes: 0 additions & 30 deletions libcxx/include/__fwd/set.h

This file was deleted.

37 changes: 6 additions & 31 deletions libcxx/include/__tree
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@
#include <__algorithm/min.h>
#include <__assert>
#include <__config>
#include <__fwd/map.h>
#include <__fwd/pair.h>
#include <__fwd/set.h>
#include <__iterator/distance.h>
#include <__iterator/iterator_traits.h>
#include <__iterator/next.h>
Expand Down Expand Up @@ -686,16 +684,6 @@ private:
friend class __tree;
template <class, class, class>
friend class __tree_const_iterator;
template <class>
friend class __map_iterator;
template <class, class, class, class>
friend class map;
template <class, class, class, class>
friend class multimap;
template <class, class, class>
friend class set;
template <class, class, class>
friend class multiset;
};

template <class _Tp, class _NodePtr, class _DiffType>
Expand All @@ -709,18 +697,15 @@ class __tree_const_iterator {
__end_node_pointer __ptr_;

public:
using iterator_category = bidirectional_iterator_tag;
using value_type = __get_node_value_type_t<_Tp>;
using difference_type = _DiffType;
using reference = const value_type&;
using pointer = __rebind_pointer_t<_NodePtr, const value_type>;
using iterator_category = bidirectional_iterator_tag;
using value_type = __get_node_value_type_t<_Tp>;
using difference_type = _DiffType;
using reference = const value_type&;
using pointer = __rebind_pointer_t<_NodePtr, const value_type>;
using __non_const_iterator _LIBCPP_NODEBUG = __tree_iterator<_Tp, __node_pointer, difference_type>;

_LIBCPP_HIDE_FROM_ABI __tree_const_iterator() _NOEXCEPT : __ptr_(nullptr) {}

private:
typedef __tree_iterator<_Tp, __node_pointer, difference_type> __non_const_iterator;

public:
_LIBCPP_HIDE_FROM_ABI __tree_const_iterator(__non_const_iterator __p) _NOEXCEPT : __ptr_(__p.__ptr_) {}

_LIBCPP_HIDE_FROM_ABI reference operator*() const { return __get_np()->__value_; }
Expand Down Expand Up @@ -762,16 +747,6 @@ private:

template <class, class, class>
friend class __tree;
template <class, class, class, class>
friend class map;
template <class, class, class, class>
friend class multimap;
template <class, class, class>
friend class set;
template <class, class, class>
friend class multiset;
template <class>
friend class __map_const_iterator;
};

template <class _Tp, class _Compare>
Expand Down
6 changes: 4 additions & 2 deletions libcxx/include/map
Original file line number Diff line number Diff line change
Expand Up @@ -582,7 +582,6 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred); // C++20
# include <__functional/binary_function.h>
# include <__functional/is_transparent.h>
# include <__functional/operations.h>
# include <__fwd/map.h>
# include <__iterator/erase_if_container.h>
# include <__iterator/iterator_traits.h>
# include <__iterator/ranges_iterator_traits.h>
Expand Down Expand Up @@ -861,7 +860,10 @@ public:
friend class __tree_const_iterator;
};

template <class _Key, class _Tp, class _Compare, class _Allocator>
template <class _Key, class _Tp, class _Compare = less<_Key>, class _Allocator = allocator<pair<const _Key, _Tp> > >
class multimap;

template <class _Key, class _Tp, class _Compare = less<_Key>, class _Allocator = allocator<pair<const _Key, _Tp> > >
class map {
public:
// types:
Expand Down
2 changes: 0 additions & 2 deletions libcxx/include/module.modulemap.in
Original file line number Diff line number Diff line change
Expand Up @@ -1607,7 +1607,6 @@ module std [system] {
}

module map {
module fwd { header "__fwd/map.h" }
header "map"
export *
export std.iterator.reverse_iterator
Expand Down Expand Up @@ -1974,7 +1973,6 @@ module std [system] {
}

module set {
module fwd { header "__fwd/set.h" }
header "set"
export *
export std.iterator.reverse_iterator
Expand Down
6 changes: 4 additions & 2 deletions libcxx/include/set
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,6 @@ erase_if(multiset<Key, Compare, Allocator>& c, Predicate pred); // C++20
# include <__config>
# include <__functional/is_transparent.h>
# include <__functional/operations.h>
# include <__fwd/set.h>
# include <__iterator/erase_if_container.h>
# include <__iterator/iterator_traits.h>
# include <__iterator/ranges_iterator_traits.h>
Expand Down Expand Up @@ -570,7 +569,10 @@ _LIBCPP_PUSH_MACROS

_LIBCPP_BEGIN_NAMESPACE_STD

template <class _Key, class _Compare, class _Allocator>
template <class _Key, class _Compare = less<_Key>, class _Allocator = allocator<_Key> >
class multiset;

template <class _Key, class _Compare = less<_Key>, class _Allocator = allocator<_Key> >
class set {
public:
// types:
Expand Down
Loading