std::ctype_byname
| Definiert in Header <locale> |
||
| template< class CharT > class ctype_byname : public std::ctype<CharT>; |
||
std::ctype_byname ist eine std::ctype-Facettenklasse, die die Zeichenklassifizierungsregeln der bei ihrer Konstruktion angegebenen Locale kapselt.
Inhalt |
[bearbeiten] Spezialisierungen
Die Standardbibliothek garantiert die Bereitstellung der folgenden Spezialisierungen
| Definiert in Header
<locale> | |
| std::ctype_byname<char> | stellt schmale Zeichenklassifizierung bereit (verwendet Tabellensuche für die Zeichenklassifizierung) |
| std::ctype_byname<wchar_t> | stellt breite Zeichenklassifizierung bereit |
[bearbeiten] Innere Typen
| Typ | Definition |
mask
|
typename std::ctype<CharT>::mask |
[bearbeiten] Memberfunktionen
| (Konstruktor) |
konstruiert eine neue ctype_byname-Facettenklasse(public member function) |
| (Destruktor) |
zerstört eine ctype_byname-Facettenklasse(protected member function) |
std::ctype_byname::ctype_byname
| explicit ctype_byname( const char* name, std::size_t refs = 0 ); |
||
| explicit ctype_byname( const std::string& name, std::size_t refs = 0 ); |
(seit C++11) | |
Konstruiert eine neue std::ctype_byname-Facettenklasse für eine Locale mit dem Namen name.
refs wird für die Ressourcenverwaltung verwendet: Wenn refs = 0 ist, zerstört die Implementierung die Facettenklasse, wenn das letzte std::locale-Objekt, das sie hält, zerstört wird. Andernfalls wird das Objekt nicht zerstört.
Parameter
| name | - | der Name der Locale |
| refs | - | die Anzahl der Referenzen, die auf die Facettenklasse verweisen |
std::ctype_byname::~ctype_byname
| protected: ~ctype_byname(); |
||
Zerstört die Facettenklasse.
Geerbt von std::ctype<CharT> (nur wenn CharT nicht char ist)
Verschachtelte Typen
| Typ | Definition |
char_type
|
CharT
|
Datenmember
| Mitglied | Beschreibung |
std::locale::id id [static] |
die Kennung des Facets |
Memberfunktionen
ruft do_is auf(public member function of std::ctype<CharT>) | |
ruft do_scan_is auf(public member function of std::ctype<CharT>) | |
ruft do_scan_not auf(public member function of std::ctype<CharT>) | |
ruft do_toupper auf(public member function of std::ctype<CharT>) | |
ruft do_tolower auf(public member function of std::ctype<CharT>) | |
ruft do_widen auf(public member function of std::ctype<CharT>) | |
ruft do_narrow auf(public member function of std::ctype<CharT>) |
Geschützte Memberfunktionen
| [virtuell] |
konvertiert ein Zeichen oder Zeichen in Großbuchstaben (virtual protected member function of std::ctype<CharT>) |
| [virtuell] |
konvertiert ein Zeichen oder Zeichen in Kleinbuchstaben (virtual protected member function of std::ctype<CharT>) |
| [virtuell] |
konvertiert ein Zeichen oder Zeichen von char zu CharT(virtual protected member function of std::ctype<CharT>) |
| [virtuell] |
konvertiert ein Zeichen oder Zeichen von CharT zu char(virtual protected member function of std::ctype<CharT>) |
| [virtuell] |
klassifiziert ein Zeichen oder eine Zeichensequenz (virtual protected member function of std::ctype<CharT>) |
| [virtuell] |
sucht das erste Zeichen in einer Sequenz, das der gegebenen Klassifizierung entspricht (virtual protected member function of std::ctype<CharT>) |
| [virtuell] |
sucht das erste Zeichen in einer Sequenz, das der gegebenen Klassifizierung nicht entspricht (virtual protected member function of std::ctype<CharT>) |
Geerbt von std::ctype<char> (nur wenn CharT char ist)
Verschachtelte Typen
| Typ | Definition |
char_type
|
char |
Datenmember
| Mitglied | Beschreibung |
std::locale::id id [static] |
die Kennung des Facets |
const std::size_t table_size [static] |
Größe der Klassifizierungstabelle, mindestens 256 |
Memberfunktionen
| ruft die Zeichenklassifizierungstabelle ab (public member function of std::ctype<char>) | |
| [static] |
ruft die Zeichenklassifizierungstabelle der "C"-Locale ab (public static member function of std::ctype<char>) |
| klassifiziert ein Zeichen oder eine Zeichensequenz unter Verwendung der Klassifizierungstabelle (public member function of std::ctype<char>) | |
| findet das erste Zeichen in einer Sequenz, das der gegebenen Klassifizierung entspricht, unter Verwendung der Klassifizierungstabelle (public member function of std::ctype<char>) | |
| findet das erste Zeichen in einer Sequenz, das die gegebene Klassifizierung nicht erfüllt, unter Verwendung der Klassifizierungstabelle (public member function of std::ctype<char>) | |
ruft do_toupper auf(public member function of std::ctype<CharT>) | |
ruft do_tolower auf(public member function of std::ctype<CharT>) | |
ruft do_widen auf(public member function of std::ctype<CharT>) | |
ruft do_narrow auf(public member function of std::ctype<CharT>) |
Geschützte Memberfunktionen
| [virtuell] |
konvertiert ein Zeichen oder Zeichen in Großbuchstaben (virtual protected member function of std::ctype<CharT>) |
| [virtuell] |
konvertiert ein Zeichen oder Zeichen in Kleinbuchstaben (virtual protected member function of std::ctype<CharT>) |
| [virtuell] |
konvertiert ein Zeichen oder Zeichen von char zu CharT(virtual protected member function of std::ctype<CharT>) |
| [virtuell] |
konvertiert ein Zeichen oder Zeichen von CharT zu char(virtual protected member function of std::ctype<CharT>) |
Geerbt von std::ctype_base
Verschachtelte Typen
| Typ | Definition |
mask
|
nicht spezifizierter BitmaskType Typ (Enumeration, Ganzzahltyp oder Bitset) |
Member-Konstanten
| Leerzeichen [static] |
der Wert von mask, der die Klassifizierung von Leerzeichen kennzeichnet(öffentliche statische Member-Konstante) |
| print [static] |
der Wert von mask, der die Klassifizierung von druckbaren Zeichen kennzeichnet(öffentliche statische Member-Konstante) |
| cntrl [static] |
der Wert von mask, der die Klassifizierung von Steuerzeichen kennzeichnet(öffentliche statische Member-Konstante) |
| upper [static] |
der Wert von mask, der die Klassifizierung von Großbuchstaben kennzeichnet(öffentliche statische Member-Konstante) |
| lower [static] |
der Wert von mask, der die Klassifizierung von Kleinbuchstaben kennzeichnet(öffentliche statische Member-Konstante) |
| alpha [static] |
der Wert von mask, der die Klassifizierung von alphabetischen Zeichen kennzeichnet(öffentliche statische Member-Konstante) |
| Ziffer [static] |
der Wert von mask, der die Klassifizierung von Ziffern kennzeichnet(öffentliche statische Member-Konstante) |
| punct [static] |
der Wert von mask, der die Klassifizierung von Satzzeichen kennzeichnet(öffentliche statische Member-Konstante) |
| xdigit [static] |
der Wert von mask, der die Klassifizierung von Hexadezimalziffern kennzeichnet(öffentliche statische Member-Konstante) |
| blank [statisch] (C++11) |
der Wert von mask, der die Klassifizierung von Leerzeichen (Blank) kennzeichnet(öffentliche statische Member-Konstante) |
| alnum [static] |
alpha | digit (öffentliche statische Member-Konstante) |
| graph [static] |
alnum | punct (öffentliche statische Member-Konstante) |
[bearbeiten] Anmerkungen
std::ctype_byname<char> wurde im Synopsis von <locale> fälschlicherweise als explizite Spezialisierung deklariert, und die Deklaration wurde durch die Lösung von LWG-Issue 1298 entfernt, bleibt aber eine erforderliche Spezialisierung, genau wie std::ctype_byname<wchar_t>.
[bearbeiten] Beispiel
#include <iostream> #include <locale> int main() { wchar_t c = L'\u00de'; // capital letter thorn std::locale loc("C"); std::cout << "isupper('Þ', C locale) returned " << std::boolalpha << std::isupper(c, loc) << '\n'; loc = std::locale(loc, new std::ctype_byname<wchar_t>("en_US.utf8")); std::cout << "isupper('Þ', C locale with Unicode ctype) returned " << std::boolalpha << std::isupper(c, loc) << '\n'; }
Ausgabe
isupper('Þ', C locale) returned false
isupper('Þ', C locale with Unicode ctype) returned true[bearbeiten] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 16 | C++98 | die Definition der expliziten Spezialisierung std::ctype_byname<char> spezifizierte den Namen und die Parameterliste von do_narrow falsch |
korrigiert |
| LWG 616 | C++98 | der typename-Disambiguator fehlte in der Definition von mask |
hinzugefügt |
[bearbeiten] Siehe auch
| definiert Zeichenklassifizierungstabellen (Klassentemplate) | |
| Spezialisierung von std::ctype für den Typ char (Klassentemplate-Spezialisierung) |