std:: common_with
|
Definiert im Header
<concepts>
|
||
|
template
<
class
T,
class
U
>
concept common_with
=
|
(seit C++20) | |
Das Konzept
common_with<T, U>
spezifiziert, dass zwei Typen
T
und
U
einen
gemeinsamen Typ
teilen (berechnet durch
std::common_type_t
), zu dem beide konvertiert werden können.
Inhaltsverzeichnis |
Semantische Anforderungen
T und U modellieren
std
::
common_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,
-
std::
common_type_t
<
T, U
>
(
t1
)
ist gleich
std::
common_type_t
<
T, U
>
(
t2
)
genau dann, wenn
t1gleicht2ist; und -
std::
common_type_t
<
T, U
>
(
u1
)
ist gleich
std::
common_type_t
<
T, U
>
(
u2
)
genau dann, wenn
u1gleichu2ist.
Mit anderen Worten, die Konvertierung in den gemeinsamen Typ muss Gleichheit bewahren .
Gleichheitserhaltung
Ausdrücke, die in requires expressions der Standardbibliothek-Konzepte deklariert werden, müssen equality-preserving sein (sofern nicht anders angegeben).
Referenzen
- C++23-Standard (ISO/IEC 14882:2024):
-
-
18.4.6 Konzept
common_with[concept.common]
-
18.4.6 Konzept
- C++20-Standard (ISO/IEC 14882:2020):
-
-
18.4.6 Konzept
common_with[concept.common]
-
18.4.6 Konzept
Siehe auch
|
(C++11)
|
bestimmt den gemeinsamen Typ einer Gruppe von Typen
(Klassen-Template) |
|
bestimmt den gemeinsamen Referenztyp einer Gruppe von Typen
(Klassen-Template) |
|
|
(C++20)
|
spezifiziert, dass zwei Typen einen gemeinsamen Referenztyp teilen
(Konzept) |