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

FreeBSD Manual Pages

  
 
  

home | help
std::incrementable(3)	      C++ Standard Libary	 std::incrementable(3)

NAME
       std::incrementable - std::incrementable

Synopsis
	  Defined in header <iterator>
	  template< class I >

	      concept incrementable =
		  std::regular<I> &&
		  std::weakly_incrementable<I> &&  (since C++20)
		  requires(I i)	{
		      {	i++ } -> std::same_as<I>;

		  };

	  This concept specifies requirements on types that can	be incremented
       with the	pre-
	  and  post-increment operators, whose increment operations are	equal-
       ity-preserving,
	  and the type is std::equality_comparable.

	  Unlike with std::weakly_incrementable, which	only  support  single-
       pass algorithms,
	  multi-pass  one-directional  algorithms  can be used with types that
       model
	  std::incrementable.

	  Semantic requirements

	  I models std::incrementable only if given any	two incrementable  ob-
       jects a and b of
	  type I:

	    * bool(a ==	b) implies bool(a++ == b), and
	    * bool(a ==	b) implies bool(((void)a++, a) == ++b).

	  Equality preservation

	  Expressions declared in requires expressions of the standard library
       concepts	are
	  required to be equality-preserving (except where stated otherwise).

See also
	  weakly_incrementable specifies that a	semiregular type can be	incre-
       mented with pre-
	  (C++20)	       and post-increment operators
			       (concept)
	  same_as		specifies  that	 a type	is the same as another
       type
	  (C++20)	       (concept)

http://cppreference.com		  2024.06.10		 std::incrementable(3)

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

home | help