Namensräume
Varianten
Aktionen

std::ctype_byname

Von cppreference.com
< cpp‎ | locale
 
 
 
 
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) [bearbeiten]
(Destruktor)
zerstört eine ctype_byname-Facettenklasse
(protected member function) [bearbeiten]

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>) [bearbeiten]
ruft do_scan_is auf
(public member function of std::ctype<CharT>) [bearbeiten]
ruft do_scan_not auf
(public member function of std::ctype<CharT>) [bearbeiten]
ruft do_toupper auf
(public member function of std::ctype<CharT>) [bearbeiten]
ruft do_tolower auf
(public member function of std::ctype<CharT>) [bearbeiten]
ruft do_widen auf
(public member function of std::ctype<CharT>) [bearbeiten]
ruft do_narrow auf
(public member function of std::ctype<CharT>) [bearbeiten]

Geschützte Memberfunktionen

[virtuell]
konvertiert ein Zeichen oder Zeichen in Großbuchstaben
(virtual protected member function of std::ctype<CharT>) [bearbeiten]
[virtuell]
konvertiert ein Zeichen oder Zeichen in Kleinbuchstaben
(virtual protected member function of std::ctype<CharT>) [bearbeiten]
[virtuell]
konvertiert ein Zeichen oder Zeichen von char zu CharT
(virtual protected member function of std::ctype<CharT>) [bearbeiten]
[virtuell]
konvertiert ein Zeichen oder Zeichen von CharT zu char
(virtual protected member function of std::ctype<CharT>) [bearbeiten]
[virtuell]
klassifiziert ein Zeichen oder eine Zeichensequenz
(virtual protected member function of std::ctype<CharT>) [bearbeiten]
[virtuell]
sucht das erste Zeichen in einer Sequenz, das der gegebenen Klassifizierung entspricht
(virtual protected member function of std::ctype<CharT>) [bearbeiten]
[virtuell]
sucht das erste Zeichen in einer Sequenz, das der gegebenen Klassifizierung nicht entspricht
(virtual protected member function of std::ctype<CharT>) [bearbeiten]

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>) [bearbeiten]
ruft die Zeichenklassifizierungstabelle der "C"-Locale ab
(public static member function of std::ctype<char>) [bearbeiten]
klassifiziert ein Zeichen oder eine Zeichensequenz unter Verwendung der Klassifizierungstabelle
(public member function of std::ctype<char>) [bearbeiten]
findet das erste Zeichen in einer Sequenz, das der gegebenen Klassifizierung entspricht, unter Verwendung der Klassifizierungstabelle
(public member function of std::ctype<char>) [bearbeiten]
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>) [bearbeiten]
ruft do_toupper auf
(public member function of std::ctype<CharT>) [bearbeiten]
ruft do_tolower auf
(public member function of std::ctype<CharT>) [bearbeiten]
ruft do_widen auf
(public member function of std::ctype<CharT>) [bearbeiten]
ruft do_narrow auf
(public member function of std::ctype<CharT>) [bearbeiten]

Geschützte Memberfunktionen

[virtuell]
konvertiert ein Zeichen oder Zeichen in Großbuchstaben
(virtual protected member function of std::ctype<CharT>) [bearbeiten]
[virtuell]
konvertiert ein Zeichen oder Zeichen in Kleinbuchstaben
(virtual protected member function of std::ctype<CharT>) [bearbeiten]
[virtuell]
konvertiert ein Zeichen oder Zeichen von char zu CharT
(virtual protected member function of std::ctype<CharT>) [bearbeiten]
[virtuell]
konvertiert ein Zeichen oder Zeichen von CharT zu char
(virtual protected member function of std::ctype<CharT>) [bearbeiten]

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) [bearbeiten]
Spezialisierung von std::ctype für den Typ char
(Klassentemplate-Spezialisierung) [bearbeiten]