std::ctype<char>::is
Определён в заголовочном файле <locale> | ||
|---|---|---|
bool is( mask m, char c ) const; | (1) | |
const char* is( const char* low, const char* high, mask* vec ) const; | (2) |
1) Проверяет, классифицируется ли символ
c маской m согласно таблице классификации, возвращаемой функцией-членом table(). Фактически вычисляет table()[(unsigned char)c] & m.
2) Для каждого символа в массиве символов
[low, high) считывает его полную маску классификации из таблицы классификации, возвращаемой функцией-членом table() (то есть вычисляет table()[(unsigned char)*p] и сохраняет её в соответствующем элементе массива, на который указывает vec.Если (unsigned char)c >= std::ctype<char>::table_size, вместо table()[(unsigned char)c] подставляется значение, определяемое реализацией; оно может различаться для разных значений c.
Параметры
| c | - | символ для классификации |
| m | - | маска для классификации одного символа |
| low | - | указатель на первый символ массива символов для классификации |
| high | - | указатель на элемент, следующий за последним символом массива символов для классификации |
| vec | - | указатель на первый элемент массива масок, который необходимо заполнить |
Возвращаемое значение
1)
true, если c классифицируется с помощью m в table(), иначе false.
2)
high
Примечания
В отличие от первичного шаблона std::ctype, эта специализация не вызывает виртуальную функцию при классификации символов. Чтобы настроить поведение, производный класс может передать базовому классу конструктору нестандартную таблицу классификации.
Пример
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Опубликованное поведение | Правильное поведение |
|---|---|---|---|
| LWG 28 | C++98 | перегрузка (2) копировала значения из vec в table(),что противоположно предполагаемому поведению | исправлено |
См. также
|
[виртуальная] | классифицирует символ или последовательность символов (виртуальная защищённая функция-член std::ctype<CharT>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/locale/ctype_char/is