std:: convertible_to
|
Definiert im Header
<concepts>
|
||
|
template
<
class
From,
class
To
>
concept convertible_to
=
|
(seit C++20) | |
Das Konzept
convertible_to
<
From, To
>
spezifiziert, dass ein Ausdruck desselben Typs und derselben Wertkategorie wie
std::
declval
<
From
>
(
)
implizit und explizit in den Typ
To
konvertiert werden kann, und dass beide Konvertierungsformen gleiche Ergebnisse liefern.
Inhaltsverzeichnis |
Semantische Anforderungen
convertible_to
<
From, To
>
wird nur dann modelliert, wenn für eine Funktion
fun
vom Typ
std::
add_rvalue_reference_t
<
From
>
(
)
der Ausdruck
fun
(
)
gleichheitserhaltend
ist,
-
Entweder
-
Toist weder ein Objekttyp noch ein Referenz-auf-Objekt-Typ, oder - static_cast < To > ( fun ( ) ) entspricht [ ] ( ) - > To { return fun ( ) ; } ( ) , und
-
-
Eines der folgenden ist wahr:
- std:: add_rvalue_reference_t < From > ist kein Referenz-auf-Objekt-Typ, oder
- std:: add_rvalue_reference_t < From > ist eine Rvalue-Referenz auf einen nicht-konst-qualifizierten Typ, und der resultierende Zustand des Objekts, auf das verwiesen wird durch fun ( ) ist gültig aber unspezifiziert nach einem der obigen Ausdrücke; oder
- das Objekt, auf das verwiesen wird durch fun ( ) wird durch keinen der obigen Ausdrücke modifiziert.
Gleichheitserhaltung
Ausdrücke, die in requires expressions der Standardbibliothek-Konzepte deklariert sind, müssen equality-preserving sein (sofern nicht anders angegeben).
Referenzen
- C++23-Standard (ISO/IEC 14882:2024):
-
-
18.4.4 Konzept
convertible_to[concept.convertible]
-
18.4.4 Konzept
- C++20-Standard (ISO/IEC 14882:2020):
-
-
18.4.4 Konzept
convertible_to[concept.convertible]
-
18.4.4 Konzept
Siehe auch
|
(C++11)
(C++20)
|
prüft, ob ein Typ in den anderen Typ konvertiert werden kann
(Klassen-Template) |