Namespaces
Variants

std:: common_reference_with

From cppreference.net
Definiert im 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 >> ;
(seit C++20)

Das Konzept common_reference_with<T, U> spezifiziert, dass zwei Typen T und U einen gemeinsamen Referenztyp (berechnet durch std::common_reference_t ) teilen, zu dem beide konvertiert werden können.

Semantische Anforderungen

T und U modellieren std :: common_reference_with < T, U > nur dann, wenn für gleichheitserhaltende Ausdrücke t1 , t2 , u1 und u2 gilt, dass decltype ( ( t1 ) ) und decltype ( ( t2 ) ) beide T sind und decltype ( ( u1 ) ) und decltype ( ( u2 ) ) beide U sind,

Mit anderen Worten, die Konvertierung in den gemeinsamen Referenztyp muss Gleichheit bewahren .

Referenzen

  • C++23-Standard (ISO/IEC 14882:2024):
  • 18.4.5 Konzept common_reference_with [concept.commonref]
  • C++20-Standard (ISO/IEC 14882:2020):
  • 18.4.5 Konzept common_reference_with [concept.commonref]

Siehe auch

bestimmt den gemeinsamen Referenztyp einer Gruppe von Typen
(Klassen-Template)
spezifiziert dass zwei Typen einen gemeinsamen Typ teilen
(Konzept)
bestimmt den gemeinsamen Typ einer Gruppe von Typen
(Klassen-Template)