Skip to content

Commit 0e1d151

Browse files
Remove extraneous overloads for end
1 parent 5c7681f commit 0e1d151

File tree

1 file changed

+6
-15
lines changed

1 file changed

+6
-15
lines changed

include/beman/any_view/any_view.hpp

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ template <class ElementT,
4444
class any_view : public std::ranges::view_interface<any_view<ElementT, OptionsV, RefT, RValueRefT, DiffT>> {
4545
using iterator_concept = decltype(detail::get_iterator_concept<OptionsV>());
4646
using iterator = detail::iterator<iterator_concept, ElementT, RefT, RValueRefT, DiffT>;
47-
using sentinel = std::default_sentinel_t;
4847
using size_type = std::make_unsigned_t<DiffT>;
4948

5049
static constexpr bool sized = (OptionsV & any_view_options::sized) == any_view_options::sized;
@@ -73,13 +72,11 @@ class any_view : public std::ranges::view_interface<any_view<ElementT, OptionsV,
7372

7473
[[nodiscard]] constexpr auto begin() -> iterator
7574
requires(not simple);
76-
[[nodiscard]] constexpr auto end() -> sentinel
77-
requires(not simple);
7875

7976
[[nodiscard]] constexpr auto begin() const -> iterator
8077
requires simple;
81-
[[nodiscard]] constexpr auto end() const -> sentinel
82-
requires simple;
78+
79+
[[nodiscard]] constexpr auto end() const { return std::default_sentinel; }
8380

8481
[[nodiscard]] constexpr auto size() const -> size_type
8582
requires sized;
@@ -96,7 +93,6 @@ class any_view : public std::ranges::view_interface<any_view<ElementT, RangeTrai
9693
using difference_type = detail::difference_type_or_t<std::ptrdiff_t, RangeTraitsT>;
9794
using iterator =
9895
detail::iterator<iterator_concept, ElementT, reference_type, rvalue_reference_type, difference_type>;
99-
using sentinel = std::default_sentinel_t;
10096
using size_type = std::make_unsigned_t<difference_type>;
10197

10298
static constexpr bool sized = detail::sized_or_v<false, RangeTraitsT>;
@@ -125,13 +121,11 @@ class any_view : public std::ranges::view_interface<any_view<ElementT, RangeTrai
125121

126122
[[nodiscard]] constexpr auto begin() -> iterator
127123
requires(not simple);
128-
[[nodiscard]] constexpr auto end() -> sentinel
129-
requires(not simple);
130124

131125
[[nodiscard]] constexpr auto begin() const -> iterator
132126
requires simple;
133-
[[nodiscard]] constexpr auto end() const -> sentinel
134-
requires simple;
127+
128+
[[nodiscard]] constexpr auto end() const { return std::default_sentinel; }
135129

136130
[[nodiscard]] constexpr auto size() const -> size_type
137131
requires sized;
@@ -147,7 +141,6 @@ class any_view : public std::ranges::view_interface<any_view<ElementT, OptionsV>
147141
using difference_type = decltype(OptionsV.difference_type)::type;
148142
using iterator =
149143
detail::iterator<iterator_concept, ElementT, reference_type, rvalue_reference_type, difference_type>;
150-
using sentinel = std::default_sentinel_t;
151144
using size_type = std::make_unsigned_t<difference_type>;
152145

153146
static constexpr bool sized = OptionsV.sized;
@@ -176,13 +169,11 @@ class any_view : public std::ranges::view_interface<any_view<ElementT, OptionsV>
176169

177170
[[nodiscard]] constexpr auto begin() -> iterator
178171
requires(not simple);
179-
[[nodiscard]] constexpr auto end() -> sentinel
180-
requires(not simple);
181172

182173
[[nodiscard]] constexpr auto begin() const -> iterator
183174
requires simple;
184-
[[nodiscard]] constexpr auto end() const -> sentinel
185-
requires simple;
175+
176+
[[nodiscard]] constexpr auto end() const { return std::default_sentinel; }
186177

187178
[[nodiscard]] constexpr auto size() const -> size_type
188179
requires sized;

0 commit comments

Comments
 (0)