Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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)

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>

home | help