Skip to content

Commit 60a09f6

Browse files
some fix
1 parent df76233 commit 60a09f6

File tree

1 file changed

+47
-48
lines changed

1 file changed

+47
-48
lines changed

libcxx/include/__ranges/concat_view.h

Lines changed: 47 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -63,18 +63,18 @@ _LIBCPP_BEGIN_NAMESPACE_STD
6363

6464
namespace ranges {
6565

66-
template <class _T, class... _Ts>
67-
struct __extract_last : __extract_last<_Ts...> {};
66+
template <class _T, class... _Tp>
67+
struct __extract_last : __extract_last<_Tp...> {};
6868

6969
template <class _T>
7070
struct __extract_last<_T> {
7171
using type = _T;
7272
};
7373

74-
template <class _T, class... _Ts>
74+
template <class _T, class... _Tp>
7575
struct __derived_from_pack {
7676
constexpr static bool value =
77-
__derived_from_pack<_T, typename __extract_last<_Ts...>::type>::value && __derived_from_pack<_Ts...>::value;
77+
__derived_from_pack<_T, typename __extract_last<_Tp...>::type>::value && __derived_from_pack<_Tp...>::value;
7878
};
7979

8080
template <class _T, class _IterCategory>
@@ -155,45 +155,45 @@ class concat_view : public view_interface<concat_view<_Views...>> {
155155

156156
_LIBCPP_HIDE_FROM_ABI constexpr explicit concat_view(_Views... views) : views_(std::move(views)...) {}
157157

158-
constexpr iterator<false> begin()
158+
_LIBCPP_HIDE_FROM_ABI constexpr iterator<false> begin()
159159
requires(!(__simple_view<_Views> && ...))
160160
{
161161
iterator<false> it(this, in_place_index<0>, ranges::begin(get<0>(views_)));
162162
it.template satisfy<0>();
163163
return it;
164164
}
165165

166-
constexpr iterator<true> begin() const
166+
_LIBCPP_HIDE_FROM_ABI constexpr iterator<true> begin() const
167167
requires((range<const _Views> && ...) && __concatable<const _Views...>)
168168
{
169169
iterator<true> it(this, in_place_index<0>, ranges::begin(get<0>(views_)));
170170
it.template satisfy<0>();
171171
return it;
172172
}
173173

174-
constexpr auto end()
174+
_LIBCPP_HIDE_FROM_ABI constexpr auto end()
175175
requires(!(__simple_view<_Views> && ...))
176176
{
177177
if constexpr (common_range<typename __last_view<_Views...>::type>) {
178-
constexpr auto N = sizeof...(_Views);
179-
return iterator<false>(this, in_place_index<N - 1>, ranges::end(get<N - 1>(views_)));
178+
constexpr auto __N = sizeof...(_Views);
179+
return iterator<false>(this, in_place_index<__N - 1>, ranges::end(get<__N - 1>(views_)));
180180
} else {
181181
return default_sentinel;
182182
}
183183
}
184184

185-
constexpr auto end() const
185+
_LIBCPP_HIDE_FROM_ABI constexpr auto end() const
186186
requires(range<const _Views> && ...)
187187
{
188188
if constexpr (common_range<typename __last_view<_Views...>::type>) {
189-
constexpr auto N = sizeof...(_Views);
190-
return iterator<true>(this, in_place_index<N - 1>, ranges::end(get<N - 1>(views_)));
189+
constexpr auto __N = sizeof...(_Views);
190+
return iterator<true>(this, in_place_index<__N - 1>, ranges::end(get<__N - 1>(views_)));
191191
} else {
192192
return default_sentinel;
193193
}
194194
}
195195

196-
constexpr auto size()
196+
_LIBCPP_HIDE_FROM_ABI constexpr auto size()
197197
requires(sized_range<_Views> && ...)
198198
{
199199
return apply(
@@ -204,7 +204,7 @@ class concat_view : public view_interface<concat_view<_Views...>> {
204204
tuple_transform(ranges::size, views_));
205205
}
206206

207-
constexpr auto size() const
207+
_LIBCPP_HIDE_FROM_ABI constexpr auto size() const
208208
requires(sized_range<const _Views> && ...)
209209
{
210210
return apply(
@@ -255,7 +255,7 @@ class concat_view<_Views...>::iterator {
255255
__maybe_const<_Const, concat_view>* parent_ = nullptr;
256256

257257
template <std::size_t N>
258-
constexpr void satisfy() {
258+
_LIBCPP_HIDE_FROM_ABI constexpr void satisfy() {
259259
if constexpr (N < (sizeof...(_Views) - 1)) {
260260
if (get<N>(it_) == ranges::end(get<N>(parent_->views_))) {
261261
it_.template emplace<N + 1>(ranges::begin(get<N + 1>(parent_->views_)));
@@ -265,7 +265,7 @@ class concat_view<_Views...>::iterator {
265265
}
266266

267267
template <std::size_t N>
268-
constexpr void prev() {
268+
_LIBCPP_HIDE_FROM_ABI constexpr void prev() {
269269
if constexpr (N == 0) {
270270
--get<0>(it_);
271271
} else {
@@ -285,7 +285,7 @@ class concat_view<_Views...>::iterator {
285285
}
286286

287287
template <std::size_t N>
288-
constexpr void advance_fwd(difference_type offset, difference_type steps) {
288+
_LIBCPP_HIDE_FROM_ABI constexpr void advance_fwd(difference_type offset, difference_type steps) {
289289
using underlying_diff_type = iter_difference_t<variant_alternative_t<N, base_iter>>;
290290
if constexpr (N == sizeof...(_Views) - 1) {
291291
get<N>(it_) += static_cast<underlying_diff_type>(steps);
@@ -301,7 +301,7 @@ class concat_view<_Views...>::iterator {
301301
}
302302

303303
template <std::size_t N>
304-
constexpr void advance_bwd(difference_type offset, difference_type steps) {
304+
_LIBCPP_HIDE_FROM_ABI constexpr void advance_bwd(difference_type offset, difference_type steps) {
305305
using underlying_diff_type = iter_difference_t<variant_alternative_t<N, base_iter>>;
306306
if constexpr (N == 0) {
307307
get<N>(it_) -= static_cast<underlying_diff_type>(steps);
@@ -317,12 +317,12 @@ class concat_view<_Views...>::iterator {
317317
}
318318

319319
template <size_t... Is, typename Func>
320-
constexpr void apply_fn_with_const_index(size_t index, Func&& func, std::index_sequence<Is...>) {
320+
_LIBCPP_HIDE_FROM_ABI constexpr void apply_fn_with_const_index(size_t index, Func&& func, std::index_sequence<Is...>) {
321321
((index == Is ? (func(std::integral_constant<size_t, Is>{}), 0) : 0), ...);
322322
}
323323

324324
template <size_t N, typename Func>
325-
constexpr void apply_fn_with_const_index(size_t index, Func&& func) {
325+
_LIBCPP_HIDE_FROM_ABI constexpr void apply_fn_with_const_index(size_t index, Func&& func) {
326326
apply_fn_with_const_index(index, std::forward<Func>(func), std::make_index_sequence<N>{});
327327
}
328328

@@ -332,18 +332,18 @@ class concat_view<_Views...>::iterator {
332332
: it_(std::forward<Args>(args)...), parent_(parent) {}
333333

334334
public:
335-
iterator() = default;
335+
_LIBCPP_HIDE_FROM_ABI iterator() = default;
336336

337-
constexpr iterator(iterator<!_Const> i)
337+
_LIBCPP_HIDE_FROM_ABI constexpr iterator(iterator<!_Const> i)
338338
requires _Const && (convertible_to<iterator_t<_Views>, iterator_t<const _Views>> && ...)
339339
: it_(base_iter(in_place_index<i.index()>, std::get<i.index()>(std::move(i.it_)))), parent_(i.parent_) {}
340340

341-
constexpr decltype(auto) operator*() const {
341+
_LIBCPP_HIDE_FROM_ABI constexpr decltype(auto) operator*() const {
342342
using reference = __concat_reference_t<__maybe_const<_Const, _Views>...>;
343343
return std::visit([](auto&& it) -> reference { return *it; }, it_);
344344
}
345345

346-
constexpr iterator& operator++() {
346+
_LIBCPP_HIDE_FROM_ABI constexpr iterator& operator++() {
347347
size_t active_index = it_.index();
348348
apply_fn_with_const_index<std::variant_size_v<decltype(it_)>>(active_index, [&](auto index_constant) {
349349
constexpr size_t i = index_constant.value;
@@ -353,17 +353,17 @@ class concat_view<_Views...>::iterator {
353353
return *this;
354354
}
355355

356-
constexpr void operator++(int) { ++*this; }
356+
_LIBCPP_HIDE_FROM_ABI constexpr void operator++(int) { ++*this; }
357357

358-
constexpr iterator operator++(int)
358+
_LIBCPP_HIDE_FROM_ABI constexpr iterator operator++(int)
359359
requires(forward_range<__maybe_const<_Const, _Views>> && ...)
360360
{
361361
auto tmp = *this;
362362
++*this;
363363
return tmp;
364364
}
365365

366-
constexpr iterator& operator--()
366+
_LIBCPP_HIDE_FROM_ABI constexpr iterator& operator--()
367367
requires __concat_is_bidirectional<_Const, _Views...>
368368
{
369369
size_t active_index = it_.index();
@@ -374,41 +374,41 @@ class concat_view<_Views...>::iterator {
374374
return *this;
375375
}
376376

377-
constexpr iterator operator--(int)
377+
_LIBCPP_HIDE_FROM_ABI constexpr iterator operator--(int)
378378
requires __concat_is_bidirectional<_Const, _Views...>
379379
{
380380
auto __tmp = *this;
381381
--*this;
382382
return __tmp;
383383
}
384384

385-
friend constexpr bool operator==(const iterator& x, const iterator& y)
385+
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator==(const iterator& x, const iterator& y)
386386
requires(equality_comparable<iterator_t<__maybe_const<_Const, _Views>>> && ...)
387387
{
388388
return x.it_ == y.it_;
389389
}
390390

391-
constexpr decltype(auto) operator[](difference_type n) const
391+
_LIBCPP_HIDE_FROM_ABI constexpr decltype(auto) operator[](difference_type n) const
392392
requires __concat_is_random_access<_Const, _Views...>
393393
{
394394
return *((*this) + n);
395395
}
396396

397-
friend constexpr iterator operator+(const iterator& it, difference_type n)
397+
_LIBCPP_HIDE_FROM_ABI friend constexpr iterator operator+(const iterator& it, difference_type n)
398398
requires __concat_is_random_access<_Const, _Views...>
399399
{
400400
auto temp = it;
401401
temp += n;
402402
return temp;
403403
}
404404

405-
friend constexpr iterator operator+(difference_type n, const iterator& it)
405+
_LIBCPP_HIDE_FROM_ABI friend constexpr iterator operator+(difference_type n, const iterator& it)
406406
requires __concat_is_random_access<_Const, _Views...>
407407
{
408408
return it + n;
409409
}
410410

411-
constexpr iterator& operator+=(difference_type n)
411+
_LIBCPP_HIDE_FROM_ABI constexpr iterator& operator+=(difference_type n)
412412
requires __concat_is_random_access<_Const, _Views...>
413413
{
414414
size_t active_index = it_.index();
@@ -443,51 +443,51 @@ class concat_view<_Views...>::iterator {
443443
return *this;
444444
}
445445

446-
constexpr iterator& operator-=(difference_type n)
446+
_LIBCPP_HIDE_FROM_ABI constexpr iterator& operator-=(difference_type n)
447447
requires __concat_is_random_access<_Const, _Views...>
448448
{
449449
*this += -n;
450450
return *this;
451451
}
452452

453-
friend constexpr bool operator==(const iterator& it, default_sentinel_t) {
453+
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator==(const iterator& it, default_sentinel_t) {
454454
constexpr auto last_idx = sizeof...(_Views) - 1;
455455
return it.it_.index() == last_idx &&
456456
std::get<last_idx>(it.it_) == ranges::end(std::get<last_idx>(it.parent_->views_));
457457
}
458458

459-
friend constexpr bool operator<(const iterator& x, const iterator& y)
459+
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator<(const iterator& x, const iterator& y)
460460
requires(random_access_range<__maybe_const<_Const, _Views>> && ...)
461461
{
462462
return x.it_ < y.it_;
463463
}
464464

465-
friend constexpr bool operator>(const iterator& x, const iterator& y)
465+
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator>(const iterator& x, const iterator& y)
466466
requires(random_access_range<__maybe_const<_Const, _Views>> && ...)
467467
{
468468
return x.it_ > y.it_;
469469
}
470470

471-
friend constexpr bool operator<=(const iterator& x, const iterator& y)
471+
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator<=(const iterator& x, const iterator& y)
472472
requires(random_access_range<__maybe_const<_Const, _Views>> && ...)
473473
{
474474
return x.it_ <= y.it_;
475475
}
476476

477-
friend constexpr bool operator>=(const iterator& x, const iterator& y)
477+
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator>=(const iterator& x, const iterator& y)
478478
requires(random_access_range<__maybe_const<_Const, _Views>> && ...)
479479
{
480480
return x.it_ >= y.it_;
481481
}
482482

483-
friend constexpr auto operator<=>(const iterator& x, const iterator& y)
483+
_LIBCPP_HIDE_FROM_ABI friend constexpr auto operator<=>(const iterator& x, const iterator& y)
484484
requires((random_access_range<__maybe_const<_Const, _Views>> && ...) &&
485485
(three_way_comparable<__maybe_const<_Const, _Views>> && ...))
486486
{
487487
return x.it_ <=> y.it_;
488488
}
489489

490-
friend constexpr decltype(auto) iter_move(const iterator& it) noexcept(
490+
_LIBCPP_HIDE_FROM_ABI friend constexpr decltype(auto) iter_move(const iterator& it) noexcept(
491491

492492
((is_nothrow_invocable_v< decltype(ranges::iter_move), const iterator_t<__maybe_const<_Const, _Views>>& >) &&
493493
...) &&
@@ -503,7 +503,7 @@ class concat_view<_Views...>::iterator {
503503
it.it_);
504504
}
505505

506-
friend constexpr void iter_swap(const iterator& x, const iterator& y)
506+
_LIBCPP_HIDE_FROM_ABI friend constexpr void iter_swap(const iterator& x, const iterator& y)
507507

508508
noexcept((noexcept(ranges::swap(*x, *y))) &&
509509
(noexcept(ranges::iter_swap(std::declval<const iterator_t<__maybe_const<_Const, _Views>>>(),
@@ -525,7 +525,7 @@ class concat_view<_Views...>::iterator {
525525
y.it_);
526526
}
527527

528-
friend constexpr difference_type operator-(const iterator& x, const iterator& y)
528+
_LIBCPP_HIDE_FROM_ABI friend constexpr difference_type operator-(const iterator& x, const iterator& y)
529529
requires __concat_is_random_access<_Const, _Views...>
530530
{
531531
size_t ix = x.it_.index();
@@ -560,15 +560,15 @@ class concat_view<_Views...>::iterator {
560560
}
561561
}
562562

563-
friend constexpr iterator operator-(const iterator& it, difference_type n)
563+
_LIBCPP_HIDE_FROM_ABI friend constexpr iterator operator-(const iterator& it, difference_type n)
564564
requires __concat_is_random_access<_Const, _Views...>
565565
{
566566
auto temp = it;
567567
temp -= n;
568568
return temp;
569569
}
570570

571-
friend constexpr difference_type operator-(const iterator& x, default_sentinel_t)
571+
_LIBCPP_HIDE_FROM_ABI friend constexpr difference_type operator-(const iterator& x, default_sentinel_t)
572572
requires(sized_sentinel_for<sentinel_t<__maybe_const<_Const, _Views>>, iterator_t<__maybe_const<_Const, _Views>>> &&
573573
...) &&
574574
(__apply_drop_first<_Const, _Views...>::value)
@@ -591,7 +591,7 @@ class concat_view<_Views...>::iterator {
591591
x.it_);
592592
}
593593

594-
friend constexpr difference_type operator-(default_sentinel_t, const iterator& x)
594+
_LIBCPP_HIDE_FROM_ABI friend constexpr difference_type operator-(default_sentinel_t, const iterator& x)
595595
requires(sized_sentinel_for<sentinel_t<__maybe_const<_Const, _Views>>, iterator_t<__maybe_const<_Const, _Views>>> &&
596596
...) &&
597597
(__apply_drop_first<_Const, _Views...>::value)
@@ -605,8 +605,7 @@ namespace __concat {
605605
struct __fn {
606606
template <class... _Views>
607607
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Views... views) const
608-
noexcept(noexcept(concat_view(std::forward<_Views>(views)...)))
609-
-> decltype(concat_view(std::forward<_Views>(views)...)) {
608+
noexcept(noexcept(concat_view(std::forward<_Views>(views)...))) -> decltype(concat_view(std::forward<_Views>(views)...)) {
610609
return concat_view(std::forward<_Views>(views)...);
611610
}
612611
};

0 commit comments

Comments
 (0)