|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||
Defined in header <concepts> | ||
template<class T,class U> concept common_reference_with= | (since C++20) | |
The conceptcommon_reference_with<T, U> specifies that two typesT andU share acommon reference type (as computed bystd::common_reference_t) to which both can be converted.
T and U modelstd::common_reference_with<T, U> only if, givenequality-preserving expressionst1,t2,u1 andu2 such thatdecltype((t1)) anddecltype((t2)) are bothT anddecltype((u1)) anddecltype((u2)) are bothU,
t1 equalst2; andu1 equalsu2.In other words, the conversion to the common reference type mustpreserve equality.
common_reference_with [concept.commonref] common_reference_with [concept.commonref] | determines the common reference type of a group of types (class template)[edit] | |
(C++20) | specifies that two types share a common type (concept)[edit] |
(C++11) | determines the common type of a group of types (class template)[edit] |