std::convertible_to
Von cppreference.com
| Definiert in der Header-Datei <concepts> |
||
| template< class From, class To > concept convertible_to = |
(seit C++20) | |
Das Konzept convertible_to<From, To> spezifiziert, dass ein Ausdruck vom gleichen Typ und mit der gleichen Wertkategorie wie die von std::declval<From>() implizit und explizit in den Typ To konvertiert werden kann und dass die beiden Konvertierungsformen gleiche Ergebnisse liefern.
Inhalt |
[bearbeiten] Semantische Anforderungen
convertible_to<From, To> wird nur dann modelliert, wenn für eine Funktion fun vom Typ std::add_rvalue_reference_t<From>(), für die der Ausdruck fun() gleichheitserhaltend ist,
- entweder
-
Toweder ein Objekttyp noch ein Referenztyp auf ein Objekt ist, oder - static_cast<To>(fun()) ist gleich []() -> To { return fun(); }(), und
-
- eines der folgenden gilt:
- std::add_rvalue_reference_t<From> ist kein Referenztyp auf ein Objekt, oder
- std::add_rvalue_reference_t<From> ist eine Rvalue-Referenz auf einen nicht-const-qualifizierten Typ und der resultierende Zustand des Objekts, auf das von fun() verwiesen wird, ist nach jedem der obigen Ausdrücke gültig, aber nicht spezifiziert; oder
- das Objekt, auf das von fun() verwiesen wird, wird durch keinen der obigen Ausdrücke modifiziert.
[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.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
[bearbeiten] Siehe auch
| (C++11)(C++20) |
prüft, ob ein Typ in den anderen Typ konvertierbar ist (Klassenvorlage) |