home | help
std::experi...onReference(3)   C++ Standard Libary  std::experi...onReference(3)

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

Synopsis
	Defined in header <experimental/ranges/concepts>
	template< class T, class U >

	concept bool CommonReference =
	    Same<ranges::common_reference_t<T,				     U>,
     (ranges TS)
	ranges::common_reference_t<U, T>> &&
	    ConvertibleTo<T, ranges::common_reference_t<T, U>> &&

	    ConvertibleTo<U, ranges::common_reference_t<T, U>>;

	The concept CommonReference<T, U> specifies that two types T and U share
     a common
	reference type (as computed by ranges::common_reference_t) to which both
     can be
	converted.

	CommonReference<T,  U>	is  satisfied only if, given expressions t and u
     such that
	decltype((t)) is T and decltype((u)) is U,

	  * ranges::common_reference_t<T, U>(t) is equal to  ranges::common_ref-
     erence_t<T,
	    U>(t) if and only if t is an equality-preserving expression; and
	  *  ranges::common_reference_t<T, U>(u) is equal to ranges::common_ref-
     erence_t<T,
	    U>(u) if and only if u is an equality-preserving expression.

	In other words, the conversion to the common reference type must not al-
     ter the
	equality-preservation property of the original expression.

	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	required
     to be
	stable:  two  evaluations  of such an expression with the same input ob-
     jects must have
	equal outputs absent any explicit intervening modification of those  in-
     put objects.

See also
	common_reference determine the common reference type of a set of types
			 (class template)
	Common		 specifies that two types share a common type
			 (concept)
	common_type	 determine the common type of a set of types
			 (class template)

http://cppreference.com 	   2024.06.10	    std::experi...onReference(3)

home | help