5.1 KiB
[range.to.input.view]
25 Ranges library [ranges]
25.7 Range adaptors [range.adaptors]
25.7.35 To input view [range.to.input]
25.7.35.2 Class template to_input_view [range.to.input.view]
namespace std::ranges {template<input_range V>requires viewclass to_input_view : public view_interface<to_input_view> { V base_ = V(); // exposition only// [range.to.input.iterator], class template to_input_view::iteratortemplate class iterator; // exposition onlypublic: to_input_view() requires default_initializable = default; constexpr explicit to_input_view(V base); constexpr V base() const & requires copy_constructible { return base_; }constexpr V base() && { return std::move(base_); }constexpr auto begin() requires (); constexpr auto begin() const requires range; constexpr auto end() requires (
); constexpr auto end() const requires range; constexpr auto size() requires sized_range; constexpr auto size() const requires sized_range; constexpr auto reserve_hint() requires approximately_sized_range; constexpr auto reserve_hint() const requires approximately_sized_range; }; template to_input_view(R&&) -> to_input_view<views::all_t>;}
constexpr explicit to_input_view(V base);
Effects: Initializes base_ with std::move(base).
constexpr auto begin() requires (<V>);
Effects: Equivalent to: return iterator(ranges::begin(base_));
constexpr auto begin() const requires [range](range.range#concept:range "25.4.2 Ranges [range.range]")<const V>;
Effects: Equivalent to: return iterator(ranges::begin(base_));
constexpr auto end() requires (<V>); constexpr auto end() const requires [range](range.range#concept:range "25.4.2 Ranges [range.range]")<const V>;
Effects: Equivalent to: return ranges::end(base_);
constexpr auto size() requires [sized_range](range.sized#concept:sized_range "25.4.4 Sized ranges [range.sized]")<V>; constexpr auto size() const requires [sized_range](range.sized#concept:sized_range "25.4.4 Sized ranges [range.sized]")<const V>;
Effects: Equivalent to: return ranges::size(base_);
constexpr auto reserve_hint() requires [approximately_sized_range](range.approximately.sized#concept:approximately_sized_range "25.4.3 Approximately sized ranges [range.approximately.sized]")<V>; constexpr auto reserve_hint() const requires [approximately_sized_range](range.approximately.sized#concept:approximately_sized_range "25.4.3 Approximately sized ranges [range.approximately.sized]")<const V>;
Effects: Equivalent to: return ranges::reserve_hint(base_);