14#ifndef RANGES_V3_VIEW_ISTREAM_HPP
15#define RANGES_V3_VIEW_ISTREAM_HPP
23#include <range/v3/utility/static_const.hpp>
26#include <range/v3/detail/prologue.hpp>
32 template<
typename Val>
38 semiregular_box_t<Val> obj_;
43 using single_pass = std::true_type;
44 istream_view * rng_ =
nullptr;
48 explicit cursor(istream_view * rng)
55 Val & read()
const noexcept
57 return rng_->cached();
63 bool equal(cursor that)
const
65 return !rng_->sin_ == !that.rng_->sin_;
70 if(!(*sin_ >> cached()))
79 istream_view() =
default;
80 explicit istream_view(std::istream & sin)
86 Val & cached()
noexcept
93 template<
typename Val>
94 using istream_range RANGES_DEPRECATED(
102 template(
typename Val)(
103 requires copy_constructible<Val> AND default_constructible<Val>)
110 using namespace _istream_;
115 template<
typename Val>
116 using basic_istream_view = ::ranges::istream_view<Val>;
121#include <range/v3/detail/epilogue.hpp>
Definition adjacent_find.hpp:67
Definition default_sentinel.hpp:26
Definition istream.hpp:34
A utility for constructing a view from a (derived) type that implements begin and end cursors.
Definition facade.hpp:66