Skip to content

Commit 92fe70a

Browse files
jensmaurertkoeppe
authored andcommitted
LWG3533 Make base() const & consistent across iterator wrappers that supports input_iterators
1 parent fd44dd4 commit 92fe70a

File tree

1 file changed

+6
-12
lines changed

1 file changed

+6
-12
lines changed

source/ranges.tex

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3337,8 +3337,7 @@
33373337
@\exposid{iterator}@() = default;
33383338
constexpr @\exposid{iterator}@(filter_view& parent, iterator_t<V> current);
33393339

3340-
constexpr iterator_t<V> base() const &
3341-
requires @\libconcept{copyable}@<iterator_t<V>>;
3340+
constexpr const iterator_t<V>& base() const &;
33423341
constexpr iterator_t<V> base() &&;
33433342
constexpr range_reference_t<V> operator*() const;
33443343
constexpr iterator_t<V> operator->() const
@@ -3414,8 +3413,7 @@
34143413

34153414
\indexlibrarymember{base}{filter_view::iterator}%
34163415
\begin{itemdecl}
3417-
constexpr iterator_t<V> base() const &
3418-
requires @\libconcept{copyable}@<iterator_t<V>>;
3416+
constexpr const iterator_t<V>& base() const &;
34193417
\end{itemdecl}
34203418

34213419
\begin{itemdescr}
@@ -3834,8 +3832,7 @@
38343832
constexpr @\exposid{iterator}@(@\exposid{iterator}@<!Const> i)
38353833
requires Const && @\libconcept{convertible_to}@<iterator_t<V>, iterator_t<@\exposid{Base}@>>;
38363834

3837-
constexpr iterator_t<@\exposid{Base}@> base() const &
3838-
requires @\libconcept{copyable}@<iterator_t<@\exposid{Base}@>>;
3835+
constexpr const iterator_t<@\exposid{Base}@>& base() const &;
38393836
constexpr iterator_t<@\exposid{Base}@> base() &&;
38403837
constexpr decltype(auto) operator*() const
38413838
{ return invoke(*@\exposid{parent_}@->@\exposid{fun_}@, *@\exposid{current_}@); }
@@ -3958,8 +3955,7 @@
39583955

39593956
\indexlibrarymember{base}{transform_view::iterator}%
39603957
\begin{itemdecl}
3961-
constexpr iterator_t<@\exposid{Base}@> base() const &
3962-
requires @\libconcept{copyable}@<iterator_t<@\exposid{Base}@>>;
3958+
constexpr const iterator_t<@\exposid{Base}@>& base() const &;
39633959
\end{itemdecl}
39643960

39653961
\begin{itemdescr}
@@ -6473,8 +6469,7 @@
64736469
constexpr @\exposid{iterator}@(@\exposid{iterator}@<!Const> i)
64746470
requires Const && @\libconcept{convertible_to}@<iterator_t<V>, iterator_t<@\exposid{Base}@>>;
64756471

6476-
constexpr iterator_t<@\exposid{Base}@> base() const&
6477-
requires @\libconcept{copyable}@<iterator_t<@\exposid{Base}@>>;
6472+
constexpr const iterator_t<@\exposid{Base}@>& base() const&;
64786473
constexpr iterator_t<@\exposid{Base}@> base() &&;
64796474

64806475
constexpr decltype(auto) operator*() const
@@ -6600,8 +6595,7 @@
66006595

66016596
\indexlibrarymember{base}{elements_view::iterator}%
66026597
\begin{itemdecl}
6603-
constexpr iterator_t<@\exposid{Base}@> base() const&
6604-
requires @\libconcept{copyable}@<iterator_t<@\exposid{Base}@>>;
6598+
constexpr const iterator_t<@\exposid{Base}@>& base() const&;
66056599
\end{itemdecl}
66066600

66076601
\begin{itemdescr}

0 commit comments

Comments
 (0)