Skip to content

Commit 836bd4e

Browse files
committed
[libc++] Remove _LIBCPP_HIDE_FROM_ABI from <ranges> and its subheaders
1 parent 1b41599 commit 836bd4e

37 files changed

+671
-726
lines changed

libcxx/include/__ranges/access.h

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -55,30 +55,28 @@ concept __unqualified_begin =
5555

5656
struct __fn {
5757
template <class _Tp>
58-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp (&__t)[]) const noexcept
58+
[[nodiscard]] constexpr auto operator()(_Tp (&__t)[]) const noexcept
5959
requires(sizeof(_Tp) >= 0) // Disallow incomplete element types.
6060
{
6161
return __t + 0;
6262
}
6363

6464
template <class _Tp, size_t _Np>
65-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp (&__t)[_Np]) const noexcept
65+
[[nodiscard]] constexpr auto operator()(_Tp (&__t)[_Np]) const noexcept
6666
requires(sizeof(_Tp) >= 0) // Disallow incomplete element types.
6767
{
6868
return __t + 0;
6969
}
7070

7171
template <class _Tp>
7272
requires __member_begin<_Tp>
73-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
74-
noexcept(noexcept(_LIBCPP_AUTO_CAST(__t.begin()))) {
73+
[[nodiscard]] constexpr auto operator()(_Tp&& __t) const noexcept(noexcept(_LIBCPP_AUTO_CAST(__t.begin()))) {
7574
return _LIBCPP_AUTO_CAST(__t.begin());
7675
}
7776

7877
template <class _Tp>
7978
requires __unqualified_begin<_Tp>
80-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
81-
noexcept(noexcept(_LIBCPP_AUTO_CAST(begin(__t)))) {
79+
[[nodiscard]] constexpr auto operator()(_Tp&& __t) const noexcept(noexcept(_LIBCPP_AUTO_CAST(begin(__t)))) {
8280
return _LIBCPP_AUTO_CAST(begin(__t));
8381
}
8482

@@ -119,23 +117,21 @@ concept __unqualified_end =
119117

120118
struct __fn {
121119
template <class _Tp, size_t _Np>
122-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp (&__t)[_Np]) const noexcept
120+
[[nodiscard]] constexpr auto operator()(_Tp (&__t)[_Np]) const noexcept
123121
requires(sizeof(_Tp) >= 0) // Disallow incomplete element types.
124122
{
125123
return __t + _Np;
126124
}
127125

128126
template <class _Tp>
129127
requires __member_end<_Tp>
130-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
131-
noexcept(noexcept(_LIBCPP_AUTO_CAST(__t.end()))) {
128+
[[nodiscard]] constexpr auto operator()(_Tp&& __t) const noexcept(noexcept(_LIBCPP_AUTO_CAST(__t.end()))) {
132129
return _LIBCPP_AUTO_CAST(__t.end());
133130
}
134131

135132
template <class _Tp>
136133
requires __unqualified_end<_Tp>
137-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
138-
noexcept(noexcept(_LIBCPP_AUTO_CAST(end(__t)))) {
134+
[[nodiscard]] constexpr auto operator()(_Tp&& __t) const noexcept(noexcept(_LIBCPP_AUTO_CAST(end(__t)))) {
139135
return _LIBCPP_AUTO_CAST(end(__t));
140136
}
141137

@@ -155,15 +151,15 @@ namespace __cbegin {
155151
struct __fn {
156152
template <class _Tp>
157153
requires is_lvalue_reference_v<_Tp&&>
158-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
154+
[[nodiscard]] constexpr auto operator()(_Tp&& __t) const
159155
noexcept(noexcept(ranges::begin(static_cast<const remove_reference_t<_Tp>&>(__t))))
160156
-> decltype(ranges::begin(static_cast<const remove_reference_t<_Tp>&>(__t))) {
161157
return ranges::begin(static_cast<const remove_reference_t<_Tp>&>(__t));
162158
}
163159

164160
template <class _Tp>
165161
requires is_rvalue_reference_v<_Tp&&>
166-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
162+
[[nodiscard]] constexpr auto operator()(_Tp&& __t) const
167163
noexcept(noexcept(ranges::begin(static_cast<const _Tp&&>(__t))))
168164
-> decltype(ranges::begin(static_cast<const _Tp&&>(__t))) {
169165
return ranges::begin(static_cast<const _Tp&&>(__t));
@@ -183,16 +179,17 @@ namespace __cend {
183179
struct __fn {
184180
template <class _Tp>
185181
requires is_lvalue_reference_v<_Tp&&>
186-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
182+
[[nodiscard]] constexpr auto operator()(_Tp&& __t) const
187183
noexcept(noexcept(ranges::end(static_cast<const remove_reference_t<_Tp>&>(__t))))
188184
-> decltype(ranges::end(static_cast<const remove_reference_t<_Tp>&>(__t))) {
189185
return ranges::end(static_cast<const remove_reference_t<_Tp>&>(__t));
190186
}
191187

192188
template <class _Tp>
193189
requires is_rvalue_reference_v<_Tp&&>
194-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const noexcept(
195-
noexcept(ranges::end(static_cast<const _Tp&&>(__t)))) -> decltype(ranges::end(static_cast<const _Tp&&>(__t))) {
190+
[[nodiscard]] constexpr auto operator()(_Tp&& __t) const
191+
noexcept(noexcept(ranges::end(static_cast<const _Tp&&>(__t))))
192+
-> decltype(ranges::end(static_cast<const _Tp&&>(__t))) {
196193
return ranges::end(static_cast<const _Tp&&>(__t));
197194
}
198195
};

libcxx/include/__ranges/all.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ namespace __all {
3939
struct __fn : __range_adaptor_closure<__fn> {
4040
template <class _Tp>
4141
requires ranges::view<decay_t<_Tp>>
42-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const noexcept(
43-
noexcept(_LIBCPP_AUTO_CAST(std::forward<_Tp>(__t)))) -> decltype(_LIBCPP_AUTO_CAST(std::forward<_Tp>(__t))) {
42+
[[nodiscard]] constexpr auto operator()(_Tp&& __t) const noexcept(noexcept(_LIBCPP_AUTO_CAST(std::forward<_Tp>(__t))))
43+
-> decltype(_LIBCPP_AUTO_CAST(std::forward<_Tp>(__t))) {
4444
return _LIBCPP_AUTO_CAST(std::forward<_Tp>(__t));
4545
}
4646

4747
template <class _Tp>
4848
requires(!ranges::view<decay_t<_Tp>>) && requires(_Tp&& __t) { ranges::ref_view{std::forward<_Tp>(__t)}; }
49-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
49+
[[nodiscard]] constexpr auto operator()(_Tp&& __t) const
5050
noexcept(noexcept(ranges::ref_view{std::forward<_Tp>(__t)})) {
5151
return ranges::ref_view{std::forward<_Tp>(__t)};
5252
}
@@ -55,7 +55,7 @@ struct __fn : __range_adaptor_closure<__fn> {
5555
requires(
5656
!ranges::view<decay_t<_Tp>> && !requires(_Tp&& __t) { ranges::ref_view{std::forward<_Tp>(__t)}; } &&
5757
requires(_Tp&& __t) { ranges::owning_view{std::forward<_Tp>(__t)}; })
58-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Tp&& __t) const
58+
[[nodiscard]] constexpr auto operator()(_Tp&& __t) const
5959
noexcept(noexcept(ranges::owning_view{std::forward<_Tp>(__t)})) {
6060
return ranges::owning_view{std::forward<_Tp>(__t)};
6161
}

libcxx/include/__ranges/as_rvalue_view.h

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,33 +42,33 @@ class as_rvalue_view : public view_interface<as_rvalue_view<_View>> {
4242
_LIBCPP_NO_UNIQUE_ADDRESS _View __base_ = _View();
4343

4444
public:
45-
_LIBCPP_HIDE_FROM_ABI as_rvalue_view()
45+
as_rvalue_view()
4646
requires default_initializable<_View>
4747
= default;
4848

49-
_LIBCPP_HIDE_FROM_ABI constexpr explicit as_rvalue_view(_View __base) : __base_(std::move(__base)) {}
49+
constexpr explicit as_rvalue_view(_View __base) : __base_(std::move(__base)) {}
5050

51-
_LIBCPP_HIDE_FROM_ABI constexpr _View base() const&
51+
constexpr _View base() const&
5252
requires copy_constructible<_View>
5353
{
5454
return __base_;
5555
}
5656

57-
_LIBCPP_HIDE_FROM_ABI constexpr _View base() && { return std::move(__base_); }
57+
constexpr _View base() && { return std::move(__base_); }
5858

59-
_LIBCPP_HIDE_FROM_ABI constexpr auto begin()
59+
constexpr auto begin()
6060
requires(!__simple_view<_View>)
6161
{
6262
return move_iterator(ranges::begin(__base_));
6363
}
6464

65-
_LIBCPP_HIDE_FROM_ABI constexpr auto begin() const
65+
constexpr auto begin() const
6666
requires range<const _View>
6767
{
6868
return move_iterator(ranges::begin(__base_));
6969
}
7070

71-
_LIBCPP_HIDE_FROM_ABI constexpr auto end()
71+
constexpr auto end()
7272
requires(!__simple_view<_View>)
7373
{
7474
if constexpr (common_range<_View>) {
@@ -78,7 +78,7 @@ class as_rvalue_view : public view_interface<as_rvalue_view<_View>> {
7878
}
7979
}
8080

81-
_LIBCPP_HIDE_FROM_ABI constexpr auto end() const
81+
constexpr auto end() const
8282
requires range<const _View>
8383
{
8484
if constexpr (common_range<const _View>) {
@@ -88,13 +88,13 @@ class as_rvalue_view : public view_interface<as_rvalue_view<_View>> {
8888
}
8989
}
9090

91-
_LIBCPP_HIDE_FROM_ABI constexpr auto size()
91+
constexpr auto size()
9292
requires sized_range<_View>
9393
{
9494
return ranges::size(__base_);
9595
}
9696

97-
_LIBCPP_HIDE_FROM_ABI constexpr auto size() const
97+
constexpr auto size() const
9898
requires sized_range<const _View>
9999
{
100100
return ranges::size(__base_);
@@ -111,15 +111,15 @@ namespace views {
111111
namespace __as_rvalue {
112112
struct __fn : __range_adaptor_closure<__fn> {
113113
template <class _Range>
114-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI static constexpr auto
114+
[[nodiscard]] static constexpr auto
115115
operator()(_Range&& __range) noexcept(noexcept(as_rvalue_view(std::forward<_Range>(__range))))
116116
-> decltype(/*--------------------------*/ as_rvalue_view(std::forward<_Range>(__range))) {
117117
return /*---------------------------------*/ as_rvalue_view(std::forward<_Range>(__range));
118118
}
119119

120120
template <class _Range>
121121
requires same_as<range_rvalue_reference_t<_Range>, range_reference_t<_Range>>
122-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI static constexpr auto
122+
[[nodiscard]] static constexpr auto
123123
operator()(_Range&& __range) noexcept(noexcept(views::all(std::forward<_Range>(__range))))
124124
-> decltype(/*--------------------------*/ views::all(std::forward<_Range>(__range))) {
125125
return /*---------------------------------*/ views::all(std::forward<_Range>(__range));

libcxx/include/__ranges/chunk_by_view.h

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class _LIBCPP_ABI_LLVM18_NO_UNIQUE_ADDRESS chunk_by_view : public view_interface
6464

6565
class __iterator;
6666

67-
_LIBCPP_HIDE_FROM_ABI constexpr iterator_t<_View> __find_next(iterator_t<_View> __current) {
67+
constexpr iterator_t<_View> __find_next(iterator_t<_View> __current) {
6868
// Note: this duplicates a check in `optional` but provides a better error message.
6969
_LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(
7070
__pred_.__has_value(), "Trying to call __find_next() on a chunk_by_view that does not have a valid predicate.");
@@ -75,7 +75,7 @@ class _LIBCPP_ABI_LLVM18_NO_UNIQUE_ADDRESS chunk_by_view : public view_interface
7575
ranges::adjacent_find(__current, ranges::end(__base_), __reversed_pred), 1, ranges::end(__base_));
7676
}
7777

78-
_LIBCPP_HIDE_FROM_ABI constexpr iterator_t<_View> __find_prev(iterator_t<_View> __current)
78+
constexpr iterator_t<_View> __find_prev(iterator_t<_View> __current)
7979
requires bidirectional_range<_View>
8080
{
8181
// Attempting to decrement a begin iterator is a no-op (`__find_prev` would return the same argument given to it).
@@ -93,24 +93,24 @@ class _LIBCPP_ABI_LLVM18_NO_UNIQUE_ADDRESS chunk_by_view : public view_interface
9393
}
9494

9595
public:
96-
_LIBCPP_HIDE_FROM_ABI chunk_by_view()
96+
chunk_by_view()
9797
requires default_initializable<_View> && default_initializable<_Pred>
9898
= default;
9999

100-
_LIBCPP_HIDE_FROM_ABI constexpr explicit chunk_by_view(_View __base, _Pred __pred)
100+
constexpr explicit chunk_by_view(_View __base, _Pred __pred)
101101
: __base_(std::move(__base)), __pred_(in_place, std::move(__pred)) {}
102102

103-
_LIBCPP_HIDE_FROM_ABI constexpr _View base() const&
103+
constexpr _View base() const&
104104
requires copy_constructible<_View>
105105
{
106106
return __base_;
107107
}
108108

109-
_LIBCPP_HIDE_FROM_ABI constexpr _View base() && { return std::move(__base_); }
109+
constexpr _View base() && { return std::move(__base_); }
110110

111-
_LIBCPP_HIDE_FROM_ABI constexpr const _Pred& pred() const { return *__pred_; }
111+
constexpr const _Pred& pred() const { return *__pred_; }
112112

113-
_LIBCPP_HIDE_FROM_ABI constexpr __iterator begin() {
113+
constexpr __iterator begin() {
114114
// Note: this duplicates a check in `optional` but provides a better error message.
115115
_LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(
116116
__pred_.__has_value(), "Trying to call begin() on a chunk_by_view that does not have a valid predicate.");
@@ -122,7 +122,7 @@ class _LIBCPP_ABI_LLVM18_NO_UNIQUE_ADDRESS chunk_by_view : public view_interface
122122
return {*this, std::move(__first), *__cached_begin_};
123123
}
124124

125-
_LIBCPP_HIDE_FROM_ABI constexpr auto end() {
125+
constexpr auto end() {
126126
if constexpr (common_range<_View>) {
127127
return __iterator{*this, ranges::end(__base_), ranges::end(__base_)};
128128
} else {
@@ -143,8 +143,7 @@ class chunk_by_view<_View, _Pred>::__iterator {
143143
_LIBCPP_NO_UNIQUE_ADDRESS iterator_t<_View> __current_ = iterator_t<_View>();
144144
_LIBCPP_NO_UNIQUE_ADDRESS iterator_t<_View> __next_ = iterator_t<_View>();
145145

146-
_LIBCPP_HIDE_FROM_ABI constexpr __iterator(
147-
chunk_by_view& __parent, iterator_t<_View> __current, iterator_t<_View> __next)
146+
constexpr __iterator(chunk_by_view& __parent, iterator_t<_View> __current, iterator_t<_View> __next)
148147
: __parent_(std::addressof(__parent)), __current_(__current), __next_(__next) {}
149148

150149
public:
@@ -153,67 +152,65 @@ class chunk_by_view<_View, _Pred>::__iterator {
153152
using iterator_category = input_iterator_tag;
154153
using iterator_concept = conditional_t<bidirectional_range<_View>, bidirectional_iterator_tag, forward_iterator_tag>;
155154

156-
_LIBCPP_HIDE_FROM_ABI __iterator() = default;
155+
__iterator() = default;
157156

158-
_LIBCPP_HIDE_FROM_ABI constexpr value_type operator*() const {
157+
constexpr value_type operator*() const {
159158
// If the iterator is at end, this would return an empty range which can be checked by the calling code and doesn't
160159
// necessarily lead to a bad access.
161160
_LIBCPP_ASSERT_PEDANTIC(__current_ != __next_, "Trying to dereference past-the-end chunk_by_view iterator.");
162161
return {__current_, __next_};
163162
}
164163

165-
_LIBCPP_HIDE_FROM_ABI constexpr __iterator& operator++() {
164+
constexpr __iterator& operator++() {
166165
// Attempting to increment an end iterator is a no-op (`__find_next` would return the same argument given to it).
167166
_LIBCPP_ASSERT_PEDANTIC(__current_ != __next_, "Trying to increment past end chunk_by_view iterator.");
168167
__current_ = __next_;
169168
__next_ = __parent_->__find_next(__current_);
170169
return *this;
171170
}
172171

173-
_LIBCPP_HIDE_FROM_ABI constexpr __iterator operator++(int) {
172+
constexpr __iterator operator++(int) {
174173
auto __tmp = *this;
175174
++*this;
176175
return __tmp;
177176
}
178177

179-
_LIBCPP_HIDE_FROM_ABI constexpr __iterator& operator--()
178+
constexpr __iterator& operator--()
180179
requires bidirectional_range<_View>
181180
{
182181
__next_ = __current_;
183182
__current_ = __parent_->__find_prev(__next_);
184183
return *this;
185184
}
186185

187-
_LIBCPP_HIDE_FROM_ABI constexpr __iterator operator--(int)
186+
constexpr __iterator operator--(int)
188187
requires bidirectional_range<_View>
189188
{
190189
auto __tmp = *this;
191190
--*this;
192191
return __tmp;
193192
}
194193

195-
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator==(const __iterator& __x, const __iterator& __y) {
194+
friend constexpr bool operator==(const __iterator& __x, const __iterator& __y) {
196195
return __x.__current_ == __y.__current_;
197196
}
198197

199-
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator==(const __iterator& __x, default_sentinel_t) {
200-
return __x.__current_ == __x.__next_;
201-
}
198+
friend constexpr bool operator==(const __iterator& __x, default_sentinel_t) { return __x.__current_ == __x.__next_; }
202199
};
203200

204201
namespace views {
205202
namespace __chunk_by {
206203
struct __fn {
207204
template <class _Range, class _Pred>
208-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Range&& __range, _Pred&& __pred) const
205+
[[nodiscard]] constexpr auto operator()(_Range&& __range, _Pred&& __pred) const
209206
noexcept(noexcept(/**/ chunk_by_view(std::forward<_Range>(__range), std::forward<_Pred>(__pred))))
210207
-> decltype(/*--*/ chunk_by_view(std::forward<_Range>(__range), std::forward<_Pred>(__pred))) {
211208
return /*-------------*/ chunk_by_view(std::forward<_Range>(__range), std::forward<_Pred>(__pred));
212209
}
213210

214211
template <class _Pred>
215212
requires constructible_from<decay_t<_Pred>, _Pred>
216-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Pred&& __pred) const
213+
[[nodiscard]] constexpr auto operator()(_Pred&& __pred) const
217214
noexcept(is_nothrow_constructible_v<decay_t<_Pred>, _Pred>) {
218215
return __pipeable(std::__bind_back(*this, std::forward<_Pred>(__pred)));
219216
}

0 commit comments

Comments
 (0)