std:: common_reference_with
|
Definiert im Header
<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
(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,
-
std::
common_reference_t
<
T, U
>
(
t1
)
entspricht
std::
common_reference_t
<
T, U
>
(
t2
)
genau dann, wenn
t1t2entspricht; und -
std::
common_reference_t
<
T, U
>
(
u1
)
entspricht
std::
common_reference_t
<
T, U
>
(
u2
)
genau dann, wenn
u1u2entspricht.
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]
-
18.4.5 Konzept
- C++20-Standard (ISO/IEC 14882:2020):
-
-
18.4.5 Konzept
common_reference_with[concept.commonref]
-
18.4.5 Konzept
Siehe auch
|
bestimmt den gemeinsamen Referenztyp einer Gruppe von Typen
(Klassen-Template) |
|
|
(C++20)
|
spezifiziert dass zwei Typen einen gemeinsamen Typ teilen
(Konzept) |
|
(C++11)
|
bestimmt den gemeinsamen Typ einer Gruppe von Typen
(Klassen-Template) |