std::common_with
| Definiert in der Header-Datei <concepts> |
||
| template< class T, class U > concept common_with = |
(seit C++20) | |
Das Konzept common_with<T, U> gibt an, dass zwei Typen T und U einen gemeinsamen Typ (wie von std::common_type_t berechnet) teilen, zu dem beide konvertiert werden können.
Inhalt |
[bearbeiten] Semantische Anforderungen
T und U modellieren std::common_with<T, U> nur, 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,
- std::common_type_t<T, U>(t1) gleich std::common_type_t<T, U>(t2) ist, wenn und nur wenn
t1gleicht2ist; und - std::common_type_t<T, U>(u1) gleich std::common_type_t<T, U>(u2) ist, wenn und nur wenn
u1gleichu2ist.
Mit anderen Worten, die Konvertierung in den gemeinsamen Typ muss die Gleichheit bewahren.
[bearbeiten] Gleichheitserhaltung
Ausdrücke, die in requires-Ausdrücken der Standardbibliothekskonzepte deklariert sind, müssen gleichheitserhaltend sein (sofern nicht anders angegeben).
[bearbeiten] Referenzen
- C++23 Standard (ISO/IEC 14882:2024)
- 18.4.6 Concept
common_with[concept.common]
- 18.4.6 Concept
- C++20 Standard (ISO/IEC 14882:2020)
- 18.4.6 Concept
common_with[concept.common]
- 18.4.6 Concept
[bearbeiten] Siehe auch
| (C++11) |
ermittelt den gemeinsamen Typ einer Gruppe von Typen (Klassenvorlage) |
| ermittelt den gemeinsamen Referenztyp einer Gruppe von Typen (Klassenvorlage) | |
| (C++20) |
gibt an, dass zwei Typen einen gemeinsamen Referenztyp haben (Konzept) |