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  equality-
     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  objects
     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)

home | help