Skip to content

[range.to.input.view] Add missing std::ranges namespace #7782

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 26, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 22 additions & 20 deletions source/ranges.tex
Original file line number Diff line number Diff line change
Expand Up @@ -17636,33 +17636,35 @@
\rSec3[range.to.input.view]{Class template \tcode{to_input_view}}

\begin{codeblock}
template<@\libconcept{input_range}@ V>
requires @\libconcept{view}@<V>
class to_input_view : public view_interface<to_input_view<V>> {
V @\exposid{base_}@ = V(); // \expos
namespace std::ranges {
template<@\libconcept{input_range}@ V>
requires @\libconcept{view}@<V>
class to_input_view : public view_interface<to_input_view<V>> {
V @\exposid{base_}@ = V(); // \expos

// \ref{range.to.input.iterator}, class template \tcode{to_input_view::\exposid{iterator}}
template<bool Const> class @\exposid{iterator}@; // \expos
// \ref{range.to.input.iterator}, class template \tcode{to_input_view::\exposid{iterator}}
template<bool Const> class @\exposid{iterator}@; // \expos

public:
to_input_view() requires @\libconcept{default_initializable}@<V> = default;
constexpr explicit to_input_view(V base);
public:
to_input_view() requires @\libconcept{default_initializable}@<V> = default;
constexpr explicit to_input_view(V base);

constexpr V base() const & requires @\libconcept{copy_constructible}@<V> { return @\exposid{base_}@; }
constexpr V base() && { return std::move(@\exposid{base_}@); }
constexpr V base() const & requires @\libconcept{copy_constructible}@<V> { return @\exposid{base_}@; }
constexpr V base() && { return std::move(@\exposid{base_}@); }

constexpr auto begin() requires (!@\exposconcept{simple-view}@<V>);
constexpr auto begin() const requires @\libconcept{range}@<const V>;
constexpr auto begin() requires (!@\exposconcept{simple-view}@<V>);
constexpr auto begin() const requires @\libconcept{range}@<const V>;

constexpr auto end() requires (!@\exposconcept{simple-view}@<V>);
constexpr auto end() const requires @\libconcept{range}@<const V>;
constexpr auto end() requires (!@\exposconcept{simple-view}@<V>);
constexpr auto end() const requires @\libconcept{range}@<const V>;

constexpr auto size() requires @\libconcept{sized_range}@<V>;
constexpr auto size() const requires @\libconcept{sized_range}@<const V>;
};
constexpr auto size() requires @\libconcept{sized_range}@<V>;
constexpr auto size() const requires @\libconcept{sized_range}@<const V>;
};

template<class R>
to_input_view(R&&) -> to_input_view<views::all_t<R>>;
template<class R>
to_input_view(R&&) -> to_input_view<views::all_t<R>>;
}
\end{codeblock}

\begin{itemdecl}
Expand Down