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>				    &&
       (since C++20)
	  std::indirectly_readable<I> &&
	  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.

	 Iterator concept determination

	  Definition of	this concept is	specified via an exposition-only alias
       template
	  /*ITER_CONCEPT*/.

	  In order to determine	/*ITER_CONCEPT*/<I>, let ITER_TRAITS<I>	denote
       I if the
	  specialization std::iterator_traits<I> is generated from the primary
       template, or
	  std::iterator_traits<I> otherwise:

	    * If ITER_TRAITS<I>::iterator_concept is valid and names a type,
	      /*ITER_CONCEPT*/<I> denotes the type.
	    *  Otherwise,  if  ITER_TRAITS<I>::iterator_category  is valid and
       names a type,
	      /*ITER_CONCEPT*/<I> denotes the type.
	    * Otherwise, if std::iterator_traits<I> is generated from the pri-
       mary template,
	      /*ITER_CONCEPT*/<I> denotes std::random_access_iterator_tag.
	    * Otherwise, /*ITER_CONCEPT*/<I> does not denote a	type  and  re-
       sults in	a
	      substitution failure.

Notes
	  Unlike the LegacyInputIterator requirements, the input_iterator con-
       cept does not
	  require  equality_comparable,	 since	input  iterators are typically
       compared	with
	  sentinels.

See also
	  input_or_output_iterator specifies that objects of a type can	be in-
       cremented and
	  (C++20)		   dereferenced
				   (concept)

http://cppreference.com		  2022.07.31		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.0>

home | help