|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||
Defined in header <concepts> | ||
template<class T,class U> concept common_with= | (since C++20) | |
The conceptcommon_with<T, U> specifies that two typesT andU share acommon type (as computed bystd::common_type_t) to which both can be converted.
Contents |
T and U modelstd::common_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 type mustpreserve equality.
Expressions declared inrequires expressions of the standard library concepts are required to beequality-preserving (except where stated otherwise).
common_with [concept.common] common_with [concept.common] (C++11) | determines the common type of a group of types (class template)[edit] |
| determines the common reference type of a group of types (class template)[edit] | |
(C++20) | specifies that two types share a common reference type (concept)[edit] |