Namensräume
Varianten
Aktionen

std::ctype<char>::is

Von cppreference.com
< cpp‎ | locale‎ | ctype char
 
 
 
 
 
Definiert in Header <locale>
bool is( mask m, char c ) const;
(1)
const char* is( const char* low, const char* high, mask* vec ) const;
(2)
1) Prüft, ob das Zeichen c gemäß der durch die Memberfunktion table() zurückgegebenen Klassifikationstabelle mit der Maske m klassifiziert wird. Berechnet effektiv table()[(unsigned char)c] & m.
2) Liest für jedes Zeichen im Zeichenarray [lowhigh) die vollständige Klassifikationsmaske aus der durch die Memberfunktion table() zurückgegebenen Klassifikationstabelle (d.h. evaluiert table()[(unsigned char)*p] und speichert es im entsprechenden Element des Arrays, auf das von vec gezeigt wird.

Wenn (unsigned char)c >= std::ctype<char>::table_size, dann wird stattdessen ein implementierungsdefinierter Wert anstelle von table()[(unsigned char)c] substituiert, möglicherweise unterschiedlich für verschiedene Werte von c.

Inhalt

[edit] Parameter

c - zu klassifizierendes Zeichen
m - zu verwendende Maske für die Klassifizierung eines einzelnen Zeichens
low - Zeiger auf das erste Zeichen in einem Array von zu klassifizierenden Zeichen
high - Zeiger auf das Ende (einschließlich) des Arrays von zu klassifizierenden Zeichen
vec - Zeiger auf das erste Element des Arrays von zu füllenden Masken

[edit] Rückgabewert

1) true, wenn c in table() mit m klassifiziert wird, false sonst.
2) high

[edit] Anmerkungen

Im Gegensatz zur primären Vorlage std::ctype führt diese Spezialisierung keinen virtuellen Funktionsaufruf bei der Klassifizierung von Zeichen durch. Um das Verhalten anzupassen, kann eine abgeleitete Klasse dem Konstruktor der Basisklasse eine nicht-standardmäßige Klassifikationstabelle bereitstellen.

[edit] Beispiel

[edit] 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 28 C++98 Überladung (2) kopierte die Werte aus vec nach table(),
was das Gegenteil des beabsichtigten Verhaltens war
korrigiert

[edit] Siehe auch

[virtuell]
klassifiziert ein Zeichen oder eine Zeichensequenz
(virtual protected member function of std::ctype<CharT>) [bearbeiten]