FreeBSD Manual Pages
std::input_iterator(3) C++ Standard Libary std::input_iterator(3) NAME std::input_iterator - std::input_iterator Synopsis Defined in header <iterator> template< class I > concept input_iterator = std::input_or_output_iterator<I> && std::indirectly_readable<I> && (since C++20) requires { typename /*ITER_CONCEPT*/<I>; } && std::derived_from</*ITER_CONCEPT*/<I>, std::input_iterator_tag>; The input_iterator concept is a refinement of input_or_output_itera- tor, adding the requirement that the referenced values can be read (via indi- rectly_readable) and the requirement that the iterator concept tag be present. Notes Unlike the LegacyInputIterator requirements, the input_iterator con- cept does not require equality_comparable, since input iterators are typically compared with sentinels. Example A minimum input iterator. #include <cstddef> #include <iterator> struct SimpleInputIterator { using difference_type = std::ptrdiff_t; using value_type = int; int operator*() const; SimpleInputIterator& operator++(); void operator++(int) { ++*this; } }; static_assert(std::input_iterator<SimpleInputIterator>); See also input_or_output_iterator specifies that objects of a type can be in- cremented and (C++20) dereferenced (concept) forward_iterator specifies that an input_iterator is a for- ward iterator, (C++20) supporting equality comparison and multi- pass (concept) http://cppreference.com 2024.06.10 std::input_iterator(3)
NAME | Synopsis | Notes | Example | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::input_iterator&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
