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_iterator, adding the requirement that the referenced values can be read (via indirectly_read- able) and the requirement that the iterator concept tag be present. Notes Unlike the LegacyInputIterator requirements, the input_iterator concept does not require equality_comparable, since input iterators are typically com- pared 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 incre- mented and (C++20) dereferenced (concept) forward_iterator specifies that an input_iterator is a forward iterator, (C++20) supporting equality comparison and multi-pass (concept) http://cppreference.com 2024.06.10 std::input_iterator(3)
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>