Skip to content

Commit b5cd990

Browse files
JohelEGPjensmaurer
authored andcommitted
[ranges.syn, range.adaptors] Name view template parameter V for consistency (#3514)
P1035 used `R` for such template parameters, introducing an inconsistency.
1 parent 1772778 commit b5cd990

File tree

1 file changed

+67
-67
lines changed

1 file changed

+67
-67
lines changed

source/ranges.tex

Lines changed: 67 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -206,23 +206,23 @@
206206
namespace views { inline constexpr @\unspec@ take = @\unspec@; }
207207

208208
// \ref{range.take.while}, take while view
209-
template<view R, class Pred>
210-
requires input_range<R> && is_object_v<Pred> &&
211-
indirect_unary_predicate<const Pred, iterator_t<R>>
209+
template<view V, class Pred>
210+
requires input_range<V> && is_object_v<Pred> &&
211+
indirect_unary_predicate<const Pred, iterator_t<V>>
212212
class take_while_view;
213213

214214
namespace views { inline constexpr @\unspec@ take_while = @\unspec@; }
215215

216216
// \ref{range.drop}, drop view
217-
template<view R>
217+
template<view V>
218218
class drop_view;
219219

220220
namespace views { inline constexpr @\unspec@ drop = @\unspec@; }
221221

222222
// \ref{range.drop.while}, drop while view
223-
template<view R, class Pred>
224-
requires input_range<R> && is_object_v<Pred> &&
225-
indirect_unary_predicate<const Pred, iterator_t<R>>
223+
template<view V, class Pred>
224+
requires input_range<V> && is_object_v<Pred> &&
225+
indirect_unary_predicate<const Pred, iterator_t<V>>
226226
class drop_while_view;
227227

228228
namespace views { inline constexpr @\unspec@ drop_while = @\unspec@; }
@@ -266,7 +266,7 @@
266266
namespace views { inline constexpr @\unspec@ reverse = @\unspec@; }
267267

268268
// \ref{range.elements}, elements view
269-
template<input_range R, size_t N>
269+
template<input_range V, size_t N>
270270
requires @\seebelow@;
271271
class elements_view;
272272

@@ -4329,34 +4329,34 @@
43294329
\indexlibrarymember{end}{take_while_view}%
43304330
\begin{codeblock}
43314331
namespace std::ranges {
4332-
template<view R, class Pred>
4333-
requires input_range<R> && is_object_v<Pred> &&
4334-
indirect_unary_predicate<const Pred, iterator_t<R>>
4335-
class take_while_view : public view_interface<take_while_view<R, Pred>> {
4332+
template<view V, class Pred>
4333+
requires input_range<V> && is_object_v<Pred> &&
4334+
indirect_unary_predicate<const Pred, iterator_t<V>>
4335+
class take_while_view : public view_interface<take_while_view<V, Pred>> {
43364336
template<bool> class sentinel; // \expos
43374337

4338-
R base_; // \expos
4338+
V base_; // \expos
43394339
@\placeholder{semiregular-box}@<Pred> pred_; @\itcorr[-1]@ // \expos
43404340

43414341
public:
43424342
take_while_view() = default;
4343-
constexpr take_while_view(R base, Pred pred);
4343+
constexpr take_while_view(V base, Pred pred);
43444344

4345-
constexpr R base() const& requires copy_constructible<R> { return base_; }
4346-
constexpr R base() && { return std::move(base_); }
4345+
constexpr V base() const& requires copy_constructible<V> { return base_; }
4346+
constexpr V base() && { return std::move(base_); }
43474347

43484348
constexpr const Pred& pred() const;
43494349

4350-
constexpr auto begin() requires (!@\placeholder{simple-view}@<R>)
4350+
constexpr auto begin() requires (!@\placeholder{simple-view}@<V>)
43514351
{ return ranges::begin(base_); }
43524352

4353-
constexpr auto begin() const requires range<const R>
4353+
constexpr auto begin() const requires range<const V>
43544354
{ return ranges::begin(base_); }
43554355

4356-
constexpr auto end() requires (!@\placeholder{simple-view}@<R>)
4356+
constexpr auto end() requires (!@\placeholder{simple-view}@<V>)
43574357
{ return sentinel<false>(ranges::end(base_), addressof(*pred_)); }
43584358

4359-
constexpr auto end() const requires range<const R>
4359+
constexpr auto end() const requires range<const V>
43604360
{ return sentinel<true>(ranges::end(base_), addressof(*pred_)); }
43614361
};
43624362

@@ -4367,7 +4367,7 @@
43674367

43684368
\indexlibraryctor{take_while_view}%
43694369
\begin{itemdecl}
4370-
constexpr take_while_view(R base, Pred pred);
4370+
constexpr take_while_view(V base, Pred pred);
43714371
\end{itemdecl}
43724372

43734373
\begin{itemdescr}
@@ -4427,7 +4427,7 @@
44274427
\indexlibraryctor{take_while_view::sentinel}%
44284428
\begin{itemdecl}
44294429
constexpr sentinel(sentinel<!Const> s)
4430-
requires Const && convertible_to<sentinel_t<R>, sentinel_t<base_t>>;
4430+
requires Const && convertible_to<sentinel_t<V>, sentinel_t<base_t>>;
44314431
\end{itemdecl}
44324432

44334433
\begin{itemdescr}
@@ -4487,46 +4487,46 @@
44874487
\indexlibrarymember{size}{drop_view}%
44884488
\begin{codeblock}
44894489
namespace std::ranges {
4490-
template<view R>
4491-
class drop_view : public view_interface<drop_view<R>> {
4490+
template<view V>
4491+
class drop_view : public view_interface<drop_view<V>> {
44924492
public:
44934493
drop_view() = default;
4494-
constexpr drop_view(R base, range_difference_t<R> count);
4494+
constexpr drop_view(V base, range_difference_t<V> count);
44954495

4496-
constexpr R base() const& requires copy_constructible<R> { return base_; }
4497-
constexpr R base() && { return std::move(base_); }
4496+
constexpr V base() const& requires copy_constructible<V> { return base_; }
4497+
constexpr V base() && { return std::move(base_); }
44984498

44994499
constexpr auto begin()
4500-
requires (!(@\placeholder{simple-view}@<R> && random_access_range<R>));
4500+
requires (!(@\placeholder{simple-view}@<V> && random_access_range<V>));
45014501
constexpr auto begin() const
4502-
requires random_access_range<const R>;
4502+
requires random_access_range<const V>;
45034503

45044504
constexpr auto end()
4505-
requires (!@\placeholder{simple-view}@<R>)
4505+
requires (!@\placeholder{simple-view}@<V>)
45064506
{ return ranges::end(base_); }
45074507

45084508
constexpr auto end() const
4509-
requires range<const R>
4509+
requires range<const V>
45104510
{ return ranges::end(base_); }
45114511

45124512
constexpr auto size()
4513-
requires sized_range<R>
4513+
requires sized_range<V>
45144514
{
45154515
const auto s = ranges::size(base_);
45164516
const auto c = static_cast<decltype(s)>(count_);
45174517
return s < c ? 0 : s - c;
45184518
}
45194519

45204520
constexpr auto size() const
4521-
requires sized_range<const R>
4521+
requires sized_range<const V>
45224522
{
45234523
const auto s = ranges::size(base_);
45244524
const auto c = static_cast<decltype(s)>(count_);
45254525
return s < c ? 0 : s - c;
45264526
}
45274527
private:
4528-
R base_; // \expos
4529-
range_difference_t<R> count_; // \expos
4528+
V base_; // \expos
4529+
range_difference_t<V> count_; // \expos
45304530
};
45314531

45324532
template<class R>
@@ -4536,7 +4536,7 @@
45364536

45374537
\indexlibraryctor{drop_view}%
45384538
\begin{itemdecl}
4539-
constexpr drop_view(R base, range_difference_t<R> count);
4539+
constexpr drop_view(V base, range_difference_t<V> count);
45404540
\end{itemdecl}
45414541

45424542
\begin{itemdescr}
@@ -4553,9 +4553,9 @@
45534553
\indexlibrarymember{begin}{drop_view}%
45544554
\begin{itemdecl}
45554555
constexpr auto begin()
4556-
requires (!(@\placeholder{simple-view}@<R> && random_access_range<R>));
4556+
requires (!(@\placeholder{simple-view}@<V> && random_access_range<V>));
45574557
constexpr auto begin() const
4558-
requires random_access_range<const R>;
4558+
requires random_access_range<const V>;
45594559
\end{itemdecl}
45604560

45614561
\begin{itemdescr}
@@ -4614,16 +4614,16 @@
46144614
\indexlibrarymember{end}{drop_while_view}%
46154615
\begin{codeblock}
46164616
namespace std::ranges {
4617-
template<view R, class Pred>
4618-
requires input_range<R> && is_object_v<Pred> &&
4619-
indirect_unary_predicate<const Pred, iterator_t<R>>
4620-
class drop_while_view : public view_interface<drop_while_view<R, Pred>> {
4617+
template<view V, class Pred>
4618+
requires input_range<V> && is_object_v<Pred> &&
4619+
indirect_unary_predicate<const Pred, iterator_t<V>>
4620+
class drop_while_view : public view_interface<drop_while_view<V, Pred>> {
46214621
public:
46224622
drop_while_view() = default;
4623-
constexpr drop_while_view(R base, Pred pred);
4623+
constexpr drop_while_view(V base, Pred pred);
46244624

4625-
constexpr R base() const& requires copy_constructible<R> { return base_; }
4626-
constexpr R base() && { return std::move(base_); }
4625+
constexpr V base() const& requires copy_constructible<V> { return base_; }
4626+
constexpr V base() && { return std::move(base_); }
46274627

46284628
constexpr const Pred& pred() const;
46294629

@@ -4633,7 +4633,7 @@
46334633
{ return ranges::end(base_); }
46344634

46354635
private:
4636-
R base_; // \expos
4636+
V base_; // \expos
46374637
@\placeholder{semiregular-box}@<Pred> pred_; @\itcorr[-1]@ // \expos
46384638
};
46394639

@@ -4644,7 +4644,7 @@
46444644

46454645
\indexlibraryctor{drop_while_view}%
46464646
\begin{itemdecl}
4647-
constexpr drop_while_view(R base, Pred pred);
4647+
constexpr drop_while_view(V base, Pred pred);
46484648
\end{itemdecl}
46494649

46504650
\begin{itemdescr}
@@ -6132,45 +6132,45 @@
61326132
};
61336133

61346134

6135-
template<input_range R, size_t N>
6136-
requires view<R> && @\placeholder{has-tuple-element}@<range_value_t<R>, N> &&
6137-
@\placeholder{has-tuple-element}@<remove_reference_t<range_reference_t<R>>, N>
6138-
class elements_view : public view_interface<elements_view<R, N>> {
6135+
template<input_range V, size_t N>
6136+
requires view<V> && @\placeholder{has-tuple-element}@<range_value_t<V>, N> &&
6137+
@\placeholder{has-tuple-element}@<remove_reference_t<range_reference_t<V>>, N>
6138+
class elements_view : public view_interface<elements_view<V, N>> {
61396139
public:
61406140
elements_view() = default;
6141-
constexpr explicit elements_view(R base);
6141+
constexpr explicit elements_view(V base);
61426142

6143-
constexpr R base() const& requires copy_constructible<R> { return base_; }
6144-
constexpr R base() && { return std::move(base_); }
6143+
constexpr V base() const& requires copy_constructible<V> { return base_; }
6144+
constexpr V base() && { return std::move(base_); }
61456145

6146-
constexpr auto begin() requires (!@\placeholder{simple-view}@<R>)
6146+
constexpr auto begin() requires (!@\placeholder{simple-view}@<V>)
61476147
{ return iterator<false>(ranges::begin(base_)); }
61486148

6149-
constexpr auto begin() const requires @\placeholder{simple-view}@<R>
6149+
constexpr auto begin() const requires @\placeholder{simple-view}@<V>
61506150
{ return iterator<true>(ranges::begin(base_)); }
61516151

6152-
constexpr auto end() requires (!@\placeholder{simple-view}@<R>)
6152+
constexpr auto end() requires (!@\placeholder{simple-view}@<V>)
61536153
{ return ranges::end(base_); }
61546154

6155-
constexpr auto end() const requires @\placeholder{simple-view}@<R>
6155+
constexpr auto end() const requires @\placeholder{simple-view}@<V>
61566156
{ return ranges::end(base_); }
61576157

6158-
constexpr auto size() requires sized_range<R>
6158+
constexpr auto size() requires sized_range<V>
61596159
{ return ranges::size(base_); }
61606160

6161-
constexpr auto size() const requires sized_range<const R>
6161+
constexpr auto size() const requires sized_range<const V>
61626162
{ return ranges::size(base_); }
61636163

61646164
private:
61656165
template<bool> struct iterator; // \expos
6166-
R base_ = R(); // \expos
6166+
V base_ = V(); // \expos
61676167
};
61686168
}
61696169
\end{codeblock}
61706170

61716171
\indexlibraryctor{elements_view}%
61726172
\begin{itemdecl}
6173-
constexpr explicit elements_view(R base);
6173+
constexpr explicit elements_view(V base);
61746174
\end{itemdecl}
61756175

61766176
\begin{itemdescr}
@@ -6184,10 +6184,10 @@
61846184
\indexlibraryglobal{elements_view::iterator}%
61856185
\begin{codeblock}
61866186
namespace std::ranges {
6187-
template<class R, size_t N>
6187+
template<class V, size_t N>
61886188
template<bool Const>
6189-
class elements_view<R, N>::iterator { // \expos
6190-
using base_t = conditional_t<Const, const R, R>;
6189+
class elements_view<V, N>::iterator { // \expos
6190+
using base_t = conditional_t<Const, const V, V>;
61916191
friend iterator<!Const>;
61926192

61936193
iterator_t<base_t> current_;
@@ -6199,7 +6199,7 @@
61996199
iterator() = default;
62006200
constexpr explicit iterator(iterator_t<base_t> current);
62016201
constexpr iterator(iterator<!Const> i)
6202-
requires Const && convertible_to<iterator_t<R>, iterator_t<base_t>>;
6202+
requires Const && convertible_to<iterator_t<V>, iterator_t<base_t>>;
62036203

62046204
constexpr iterator_t<base_t> base() const &
62056205
requires copyable<iterator_t<base_t>>;
@@ -6273,7 +6273,7 @@
62736273
\indexlibraryctor{elements_view::iterator}%
62746274
\begin{itemdecl}
62756275
constexpr iterator(iterator<!Const> i)
6276-
requires Const && convertible_to<iterator_t<R>, iterator_t<base_t>>;
6276+
requires Const && convertible_to<iterator_t<V>, iterator_t<base_t>>;
62776277
\end{itemdecl}
62786278

62796279
\begin{itemdescr}

0 commit comments

Comments
 (0)