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
[low, high) 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
| Dieser Abschnitt ist unvollständig Grund: kein 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>) |