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

FreeBSD Manual Pages

  
 
  

home | help
std::experi...tputIterator(3) C++ Standard Libarystd::experi...tputIterator(3)

NAME
       std::experimental::ranges::OutputIterator       -       std::experimen-
       tal::ranges::OutputIterator

Synopsis
	  Defined in header <experimental/ranges/iterator>
	  template <class I, class T>

	  concept bool OutputIterator =
	  Iterator<I>	       &&	   Writable<I,		T>	    &&
       (ranges TS)
	  requires(I i,	T&& t) {
	  *i++ = std::forward<T>(t); //	not required to	be equality preserving

	  };

	  The  OutputIterator  concept is a refinement of Iterator, adding the
       requirement that
	  it can be used to write values of values of type and value  category
       encoded by T
	  (via Writable). EqualityComparable is	not required.

	  Let  E  be  an  expression  such that	decltype((E)) is T, and	i be a
       dereferenceable
	  object of type I. OutputIterator<I, T> is satisfied only if  *i++  =
       E; has effects
	  equivalent to	*i = E;	++i;.

	 Equality preservation

	  An  expression is equality preserving	if it results in equal outputs
       given equal
	  inputs.

	    * The inputs to an expression consist of its operands.
	    * The outputs of an	expression  consist  of	 its  result  and  all
       operands	modified by
	      the expression (if any).

	  Every	 expression  required to be equality preserving	is further re-
       quired to be
	  stable: two evaluations of such an expression	with  the  same	 input
       objects must have
	  equal	 outputs absent	any explicit intervening modification of those
       input objects.

Notes
	  Unlike the output iterator requirements in the  C++  standard,  Out-
       putIterator in the
	  Ranges  TS  does  not	 require that the iterator category tag	be de-
       fined.

	  Algorithms on	output iterators should	be single pass.

http://cppreference.com		  2022.07.31	 std::experi...tputIterator(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::experimental::ranges::OutputIterator&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help