Namensräume
Varianten
Aktionen

std::common_reference_with

Von cppreference.com
< cpp‎ | concepts
 
 
 
Definiert in der Header-Datei <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 (wie von std::common_reference_t berechnet) besitzen, zu dem beide konvertierbar sind.

[bearbeiten] 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, sodass decltype((t1)) und decltype((t2)) beide T sind und decltype((u1)) und decltype((u2)) beide U sind,

Mit anderen Worten, die Konvertierung zum gemeinsamen Referenztyp muss die Gleichheit erhalten.

[bearbeiten] 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]

[bearbeiten] Siehe auch

ermittelt den gemeinsamen Referenztyp einer Gruppe von Typen
(Klassenvorlage) [bearbeiten]
gibt an, dass zwei Typen einen gemeinsamen Typ haben
(Konzept) [bearbeiten]
ermittelt den gemeinsamen Typ einer Gruppe von Typen
(Klassenvorlage) [bearbeiten]