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

NAME
     std::common_reference_with - std::common_reference_with

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

	concept common_reference_with =
	    std::same_as<std::common_reference_t<T,			     U>,
     (since C++20)
	std::common_reference_t<U, T>> &&
	    std::convertible_to<T, std::common_reference_t<T, U>> &&

	    std::convertible_to<U, std::common_reference_t<T, U>>;

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

	Semantic requirements

	T  and U model std::common_reference_with<T, U> only if, given equality-
     preserving
	expressions  t1,  t2,  u1  and	u2  such  that	decltype((t1))	and  de-
     cltype((t2)) are both T
	and decltype((u1)) and decltype((u2)) are both U,

	  *  std::common_reference_t<T, U>(t1) equals std::common_reference_t<T,
     U>(t2) if
	    and only if t1 equals t2; and
	  * std::common_reference_t<T, U>(u1) equals  std::common_reference_t<T,
     U>(u2) if
	    and only if u1 equals u2.

	In  other  words,  the conversion to the common reference type must pre-
     serve equality.

See also
	common_reference       determines the common reference type of	a  group
     of types
	basic_common_reference (class template)
	(C++20)
	common_with	       specifies that two types share a common type
	(C++20) 	       (concept)
	common_type	       determines the common type of a group of types
	(C++11) 	       (class template)

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

home | help