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

FreeBSD Manual Pages

  
 
  

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::com-
       mon_reference_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::com-
       mon_reference_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
       alter 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  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.

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)

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

home | help