std:: ctype_byname
|
Definiert im Header
<locale>
|
||
|
template
<
class
CharT
>
class ctype_byname : public std:: ctype < CharT > ; |
||
std::ctype_byname
ist ein
std::ctype
Facette, das die Zeichenklassifizierungsregeln des bei seiner Konstruktion angegebenen Gebietsschemas kapselt.
Inhaltsverzeichnis |
Spezialisierungen
Die Standardbibliothek garantiert die Bereitstellung der folgenden Spezialisierungen:
|
Definiert im Header
<locale>
|
|
| std :: ctype_byname < char > | bietet Klassifizierung für schmale Zeichen (verwendet Tabellennachschlage für Zeichenklassifizierung) |
| std :: ctype_byname < wchar_t > | bietet Klassifizierung für breite Zeichen |
Verschachtelte Typen
| Typ | Definition |
mask
|
typename std:: ctype < CharT > :: mask |
Memberfunktionen
|
(constructor)
|
konstruiert eine neue
ctype_byname
Facette
(öffentliche Elementfunktion) |
|
(destructor)
|
zerstört eine
ctype_byname
Facette
(geschützte Elementfunktion) |
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 einen neuen
std::ctype_byname
Facet für ein Locale mit
name
.
refs wird für die Ressourcenverwaltung verwendet: wenn refs == 0 , zerstört die Implementierung den Facet, wenn das letzte std::locale Objekt, das ihn enthält, zerstört wird. Andernfalls wird das Objekt nicht zerstört.
Parameter
| name | - | der Name des Locale |
| refs | - | die Anzahl der Referenzen, die mit dem Facet verknüpft sind |
std::ctype_byname:: ~ctype_byname
|
protected
:
~ctype_byname ( ) ; |
||
Zerstört den Facet.
Geerbt von
std::
ctype
<CharT>
(nur wenn
CharT
nicht
char
ist)
Geschachtelte Typen
| Typ | Definition |
char_type
|
CharT
|
Datenelemente
| Element | Beschreibung |
std::locale::id
id
[static]
|
die Kennung des Facets |
Elementfunktionen
ruft
do_is
auf
(öffentliche Elementfunktion von
std::ctype<CharT>
)
|
|
ruft
do_scan_is
auf
(öffentliche Elementfunktion von
std::ctype<CharT>
)
|
|
ruft
do_scan_not
auf
(öffentliche Elementfunktion von
std::ctype<CharT>
)
|
|
ruft
do_toupper
auf
(öffentliche Elementfunktion von
std::ctype<CharT>
)
|
|
ruft
do_tolower
auf
(öffentliche Elementfunktion von
std::ctype<CharT>
)
|
|
ruft
do_widen
auf
(öffentliche Elementfunktion von
std::ctype<CharT>
)
|
|
ruft
do_narrow
auf
(öffentliche Elementfunktion von
std::ctype<CharT>
)
|
Geschützte Elementfunktionen
|
[virtual]
|
konvertiert ein Zeichen oder Zeichen in Großbuchstaben
(virtuelle geschützte Elementfunktion von
std::ctype<CharT>
)
|
|
[virtual]
|
konvertiert ein Zeichen oder Zeichen in Kleinbuchstaben
(virtuelle geschützte Elementfunktion von
std::ctype<CharT>
)
|
|
[virtual]
|
konvertiert ein Zeichen oder Zeichen von
char
zu
CharT
(virtuelle geschützte Elementfunktion von
std::ctype<CharT>
)
|
|
[virtual]
|
konvertiert ein Zeichen oder Zeichen von
CharT
zu
char
(virtuelle geschützte Elementfunktion von
std::ctype<CharT>
)
|
|
[virtual]
|
klassifiziert ein Zeichen oder eine Zeichensequenz
(virtuelle geschützte Elementfunktion von
std::ctype<CharT>
)
|
|
[virtual]
|
findet das erste Zeichen in einer Sequenz, das einer gegebenen Klassifikation entspricht
(virtuelle geschützte Elementfunktion von
std::ctype<CharT>
)
|
|
[virtual]
|
findet das erste Zeichen in einer Sequenz, das einer gegebenen Klassifikation nicht entspricht
(virtuelle geschützte Elementfunktion von
std::ctype<CharT>
)
|
Geerbt von
std::
ctype<char>
(nur wenn
CharT
gleich
char
ist)
Geschachtelte Typen
| Typ | Definition |
char_type
|
char |
Datenelemente
| Element | Beschreibung |
std::locale::id
id
[static]
|
die Kennung des Facets |
const
std::
size_t
table_size
[static]
|
Größe der Klassifizierungstabelle, mindestens 256 |
Elementfunktionen
|
ermittelt die Zeichenklassifizierungstabelle
(öffentliche Elementfunktion von
std::ctype
<char>
)
|
|
|
[static]
|
ermittelt die "C"-Locale-Zeichenklassifizierungstabelle
(öffentliche statische Elementfunktion von
std::ctype
<char>
)
|
|
klassifiziert ein Zeichen oder eine Zeichenfolge unter Verwendung der Klassifizierungstabelle
(öffentliche Elementfunktion von
std::ctype
<char>
)
|
|
|
sucht das erste Zeichen in einer Folge, das einer bestimmten Klassifizierung entspricht, unter Verwendung der Klassifizierungstabelle
(öffentliche Elementfunktion von
std::ctype
<char>
)
|
|
|
sucht das erste Zeichen in einer Folge, das eine bestimmte Klassifizierung nicht erfüllt, unter Verwendung der Klassifizierungstabelle
(öffentliche Elementfunktion von
std::ctype
<char>
)
|
|
ruft
do_toupper
auf
(öffentliche Elementfunktion von
std::ctype<CharT>
)
|
|
ruft
do_tolower
auf
(öffentliche Elementfunktion von
std::ctype<CharT>
)
|
|
ruft
do_widen
auf
(öffentliche Elementfunktion von
std::ctype<CharT>
)
|
|
ruft
do_narrow
auf
(öffentliche Elementfunktion von
std::ctype<CharT>
)
|
Geschützte Elementfunktionen
|
[virtual]
|
konvertiert ein Zeichen oder Zeichen zu Großbuchstaben
(virtuelle geschützte Elementfunktion von
std::ctype<CharT>
)
|
|
[virtual]
|
konvertiert ein Zeichen oder Zeichen zu Kleinbuchstaben
(virtuelle geschützte Elementfunktion von
std::ctype<CharT>
)
|
|
[virtual]
|
konvertiert ein Zeichen oder Zeichen von
char
zu
CharT
(virtuelle geschützte Elementfunktion von
std::ctype<CharT>
)
|
|
[virtual]
|
konvertiert ein Zeichen oder Zeichen von
CharT
zu
char
(virtuelle geschützte Elementfunktion von
std::ctype<CharT>
)
|
Geerbt von std:: ctype_base
Verschachtelte Typen
| Typ | Definition |
mask
|
nicht spezifizierter BitmaskType Typ (Aufzählung, Ganzzahltyp oder Bitset) |
Member-Konstanten
|
space
[static]
|
der Wert von
mask
zur Identifikation der Leerzeichen-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
print
[static]
|
der Wert von
mask
zur Identifikation der druckbaren Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
cntrl
[static]
|
der Wert von
mask
zur Identifikation der Steuerzeichen-Klassifikation
(öffentliche statische Member-Konstante) |
|
upper
[static]
|
der Wert von
mask
zur Identifikation der Großbuchstaben-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
lower
[static]
|
der Wert von
mask
zur Identifikation der Kleinbuchstaben-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
alpha
[static]
|
der Wert von
mask
zur Identifikation der alphabetischen Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
digit
[static]
|
der Wert von
mask
zur Identifikation der Ziffern-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
punct
[static]
|
der Wert von
mask
zur Identifikation der Interpunktions-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
xdigit
[static]
|
der Wert von
mask
zur Identifikation der hexadezimalen Ziffern-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
blank
[static]
(C++11)
|
der Wert von
mask
zur Identifikation der Leerzeichen-Zeichenklassifikation
(öffentliche statische Member-Konstante) |
|
alnum
[static]
|
alpha
|
digit
(öffentliche statische Member-Konstante) |
|
graph
[static]
|
alnum
|
punct
(öffentliche statische Member-Konstante) |
Hinweise
std :: ctype_byname < char > wurde fälschlicherweise als explizite Spezialisierung in der Synopsis von <locale> deklariert, und die Deklaration wurde durch die Lösung von LWG Issue 1298 entfernt, aber es bleibt eine erforderliche Spezialisierung, genau wie std :: ctype_byname < wchar_t > .
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
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes 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 |
Siehe auch
|
definiert Zeichenklassifizierungstabellen
(Klassentemplate) |
|
|
Spezialisierung von
std::ctype
für den Typ
char
(Klassentemplate-Spezialisierung) |