Namensräume
Varianten
Aktionen

C++ benannte Anforderungen: RegexTraits (seit C++11)

Von cppreference.com
 
 
C++ benannte Anforderungen
 

RegexTraits ist eine Traits-Klasse, die Operationen abstrahiert, die für einen gegebenen Zeichentyp als Template-Typparameter für std::basic_regex benötigt werden.

[bearbeiten] Anforderungen

Gegeben

  • CharT, ein Zeichentyp
  • X, ein RegexTraits-Typ für den Typ CharT
  • u, ein Objekt vom Typ X
  • v, ein Objekt vom Typ const X
  • p, ein Wert vom Typ const CharT*
  • I1, I2, Eingabe-Iteratoren
  • F1, F2, Vorwärts-Iteratoren
  • c, ein Wert vom Typ const CharT
  • s, ein Objekt vom Typ X::string_type
  • cs, ein Objekt vom Typ const X::string_type
  • b, ein Wert vom Typ bool
  • I, ein Wert vom Typ int
  • cl, ein Objekt vom Typ X::char_class_type
  • loc, ein Objekt vom Typ X::locale_type


expression Rückgabetyp Semantik
X::char_type CharT Wird verwendet, um sich auf den Zeichentyp zu beziehen.
X::string_type std::basic_string<CharT>
X::locale_type Ein CopyConstructible-Typ, der die von der Traits-Klasse verwendete Locale repräsentiert.
X::char_class_type Ein BitmaskType-Typ, der eine bestimmte Zeichenklassifizierung darstellt.
X::length(p) std::size_t Gibt zurück: Das kleinste i, so dass p[i] = 0. Komplexität ist linear in i.
v.translate(c) X::char_type Gibt zurück: Ein Zeichen, so dass für jedes Zeichen d, das als äquivalent zu c betrachtet wird, gilt: v.translate(c) = v.translate(d).
v.translate_nocase(c) X::char_type Gibt zurück: Ein Zeichen, so dass für jedes Zeichen C, das als äquivalent zu c ohne Berücksichtigung der Groß-/Kleinschreibung betrachtet wird, gilt: v.translate_nocase(c) = v.translate_nocase(C).
v.transform(F1, F2) X::string_type Gibt zurück: Ein Sortierschlüssel für die durch den Iteratorbereich [F1, F2) bezeichnete Zeichensequenz, so dass gilt: Wenn die Zeichensequenz [G1, G2) vor der Zeichensequenz [H1, H2) sortiert wird, dann gilt v.transform(G1, G2) < v.transform(H1, H2).
v.transform_primary(F1, F2) X::string_type Gibt zurück: Ein Sortierschlüssel für die durch den Iteratorbereich [F1, F2) bezeichnete Zeichensequenz, so dass gilt: Wenn die Zeichensequenz [G1, G2) vor der Zeichensequenz [H1, H2) ohne Berücksichtigung der Groß-/Kleinschreibung sortiert wird, dann gilt v.transform_primary(G1, G2) < v.transform_primary(H1, H2).
v.lookup_collatename(F1, F2) X::string_type Gibt zurück
  • Ein leerer String, wenn die Zeichensequenz kein gültiges Kollationselement ist.
  • Eine Zeichensequenz, die das Kollationselement repräsentiert und aus der durch den Iteratorbereich [F1, F2) bezeichneten Zeichensequenz besteht, andernfalls.
v.lookup_classname(F1, F2, b) X::char_class_type
  • Konvertiert die durch den Iteratorbereich [F1, F2) bezeichnete Zeichensequenz in einen Wert eines BitmaskType, der anschließend an isctype übergeben werden kann.
  • Werte, die von lookup_classname zurückgegeben werden, können bitweise miteinander verknüpft werden; der resultierende Wert repräsentiert die Zugehörigkeit zu einer der entsprechenden Zeichenklassen.
  • Wenn b wahr ist, ist die zurückgegebene Bitmaske für den Abgleich von Zeichen ohne Berücksichtigung ihrer Groß-/Kleinschreibung geeignet.
  • Gibt 0 zurück, wenn die Zeichensequenz kein Name einer von X erkannten Zeichenklasse ist.
  • Der zurückgegebene Wert muss unabhängig von der Groß-/Kleinschreibung der Zeichen in der Sequenz sein.
v.isctype(c, cl) bool Gibt zurück: Ob c ein Mitglied einer der durch cl bezeichneten Zeichenklassen ist oder nicht.
v.value(c, I) int Gibt zurück
  • Der von der Ziffer c in Basis I repräsentierte Wert, wenn das Zeichen c eine gültige Ziffer in Basis I ist.
  • -1 andernfalls
u.imbue(loc) X::locale_type
  • Überlagert u mit der Locale loc.
  • Gibt zurück: Die zuvor von u verwendete Locale, falls vorhanden.
v.getloc() X::locale_type Gibt zurück: Die zuvor von v verwendete Locale, falls vorhanden.


[bearbeiten] Standardbibliothek

RegexTraits wird von den folgenden Standardbibliotheksklassen erfüllt:

template<> class regex_traits<char>;
template<> class regex_traits<wchar_t>;
(seit C++11)
(seit C++11)