# std::experimental::ranges::InputIterator

From cppreference.com
< cpp‎ | experimental‎ | ranges

Defined in header `<experimental/ranges/iterator>` |  |

template <class I>

concept bool InputIterator() {
return ranges::Iterator<I>()
&& ranges::Readable<I>()
&& requires(I i, const I ci) {
typename ranges::iterator_category_t<I>;
requires ranges::DerivedFrom<ranges::iterator_category_t<I>,
ranges::input_iterator_tag>();
{ i++ } -> ranges::Readable; /* not required to be equality preserving */
requires ranges::Same<ranges::value_type_t<I>,
ranges::value_type_t<decltype(i++)>>();
{ *ci } -> const ranges::value_type_t<I>&;
};

}

(ranges TS)

| This section is incomplete Reason: add description and extra caveats

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/iterator/InputIterator&oldid=89710"
Category:

- Todo with reason