std::common_reference_with
Von cppreference.com
| Definiert in der Header-Datei <concepts> |
||
| template< class T, class U > concept common_reference_with = |
(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,
- std::common_reference_t<T, U>(t1) gleich std::common_reference_t<T, U>(t2) ist genau dann, wenn
t1gleicht2ist; und - std::common_reference_t<T, U>(u1) gleich std::common_reference_t<T, U>(u2) ist genau dann, wenn
u1gleichu2ist.
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]
- 18.4.5 Konzept
- C++20 Standard (ISO/IEC 14882:2020)
- 18.4.5 Konzept
common_reference_with[concept.commonref]
- 18.4.5 Konzept
[bearbeiten] Siehe auch
| ermittelt den gemeinsamen Referenztyp einer Gruppe von Typen (Klassenvorlage) | |
| (C++20) |
gibt an, dass zwei Typen einen gemeinsamen Typ haben (Konzept) |
| (C++11) |
ermittelt den gemeinsamen Typ einer Gruppe von Typen (Klassenvorlage) |