std::common_reference_with(3)
π¦ std::common_reference_with(3) π¦
okay bestie, welcome to the C++ Standard Libary manual page for std::common_reference_with β yes, the header spells it βLibaryβ, and weβre keeping the vibe intact π
. This is the page about the concept that says two types share a common reference type (as computed by std::common_reference_t) that both can convert to. Periodt. β¨
π NAME π
std::common_reference_with β literally std::common_reference_with, bestie. Thatβs the name. No cap. π
πΈ Synopsis πΈ
Defined in header <concepts>:
template< class T, class U >
concept common_reference_with =
std::same_as<std::common_reference_t<T, U>,
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>>;
(since C++20) β this concept is giving main character energy π₯.
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 decltype((t2)) are both T and decltype((u1)) and decltype((u2)) are both U,
std::common_reference_t<T, U>(t1)equalsstd::common_reference_t<T, U>(t2)if and only ift1equalst2; andstd::common_reference_t<T, U>(u1)equalsstd::common_reference_t<T, U>(u2)if and only ifu1equalsu2.
In other words, the conversion to the common reference type must preserve equality. Thatβs the whole vibe check: equality has to survive the conversion, bestie. ππ
π See also π
common_referenceβ determines the common reference type of a group of typesbasic_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)
mwah π β source http://cppreference.com, version/date 2024.06.10, page std::common_reference_with(3). Slay, and happy concept-ing π§β¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms