std::meta::identifier_of, std::meta::u8identifier_of
Von de.cppreference.net
| Definiert in Header <meta>
|
||
consteval std::string_view identifier_of( std::meta::info r );
|
(1) | (seit C++26) |
consteval std::u8string_view u8identifier_of( std::meta::info r );
|
(2) | (seit C++26) |
Gibt den Bezeichner zurück, der mit dem von r dargestellten assoziiert ist.
1) Das Ergebnis ist eine Zeichenkette, die in der gewöhnlichen Literalkodierung kodiert ist.
2) Das Ergebnis ist eine UTF-8-Zeichenkette.
Die Ergebniszeichenkette wird wie folgt bestimmt:
- Wenn
reine Entität mit einem typedef-Name für Bindungszwecke darstellt, wird dieser Name zurückgegeben. - Andernfalls, wenn
reinen Literal-Operator oder eine Literal-Operator-Vorlage darstellt, wird sein Literalsuffix-Bezeichner zurückgegeben. - Andernfalls, wenn
reinen FunktionsparameterPeiner FunktionFdarstellt, dann seiSdie Menge der Deklarationen, die von einem Punkt im Auswertungskontext aus erreichbar sind und die entwederFoder eine Vorlagenfunktion, von derFeine Spezialisierung ist, deklarieren; es wird der Name zurückgegeben, der durch eine Deklaration inSfür den Parameter eingeführt wurde, derPentspricht. - Andernfalls, wenn
reine Entität darstellt, wird ihr deklarierter Name zurückgegeben. - Andernfalls, wenn
reine direkte Basisklassenbeziehung darstellt, wirdstd::meta::identifier_of(std::meta::type_of(r))oderstd::meta::u8identifier_of(std::meta::type_of(r))zurückgegeben. - Andernfalls, wenn
reine Datenelementbeschreibung (T, N, A, W, NUA, ANN) darstellt, wird der Name der Beschreibung N zurückgegeben.
Parameter
| r | - | ein Reflektionswert |
Rückgabewert
Der Bezeichner dessen, was r darstellt, wie oben beschrieben.
Ausnahmen
Wirft std::meta::exception, es sei denn, std::meta::has_identifier(r) ist true und die Ergebniszeichenkette ist in der entsprechenden Kodierung darstellbar.
Hinweise
Das Ergebnis V ist nullterminiert: V.data()[V.size()] ist garantiert '\0'. Jedes Element in V ist ein potenziell nicht eindeutiges Objekt mit statischer Speicherdauer, das in konstanten Ausdrücken verwendbar ist; ein Zeiger auf ein solches Element ist nicht geeignet zur Verwendung als Template-Argument für einen Nicht-Typ-Template-Parameter vom Zeigertyp.
Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
Siehe auch
(C++26) |
prüft, ob die Reflektion eine Entität darstellt, die einen Bezeichner hat (Funktion) |