Namespaces
Variants

std:: ctype_byname

From cppreference.net
Определено в заголовочном файле <locale>
template < class CharT >
class ctype_byname : public std:: ctype < CharT > ;

std::ctype_byname — это фасет std::ctype , который инкапсулирует правила классификации символов для локали, указанной при его создании.

Содержание

Специализации

Стандартная библиотека гарантированно предоставляет следующие специализации:

Определено в заголовочном файле <locale>
std :: ctype_byname < char > предоставляет классификацию узких символов (использует табличный поиск для классификации символов)
std :: ctype_byname < wchar_t > предоставляет классификацию широких символов

Вложенные типы

Тип Определение
mask typename std:: ctype < CharT > :: mask

Функции-члены

(constructor)
создает новый ctype_byname фацет
(публичная функция-член)
(destructor)
уничтожает ctype_byname фацет
(защищенная функция-член)

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 ) ;
(since C++11)

Создает новый фасет std::ctype_byname для локали с именем name .

refs используется для управления ресурсами: если refs == 0 , реализация уничтожает фасет, когда уничтожается последний объект std::locale , который его содержит. В противном случае объект не уничтожается.

Параметры

name - имя локали
refs - количество ссылок, связывающих с фасетом

std::ctype_byname:: ~ctype_byname

protected :
~ctype_byname ( ) ;

Уничтожает фацет.

Унаследовано от std:: ctype <CharT> (только если CharT не является char )

Вложенные типы

Тип Определение
char_type CharT

Члены данных

Член Описание
std::locale::id id [static] идентификатор аспекта

Функции-члены

вызывает do_is
(публичная функция-член std::ctype<CharT> )
вызывает do_scan_is
(публичная функция-член std::ctype<CharT> )
вызывает do_scan_not
(публичная функция-член std::ctype<CharT> )
вызывает do_toupper
(публичная функция-член std::ctype<CharT> )
вызывает do_tolower
(публичная функция-член std::ctype<CharT> )
вызывает do_widen
(публичная функция-член std::ctype<CharT> )
вызывает do_narrow
(публичная функция-член std::ctype<CharT> )

Защищённые функции-члены

[virtual]
преобразует символ или символы в верхний регистр
(виртуальная защищённая функция-член std::ctype<CharT> )
[virtual]
преобразует символ или символы в нижний регистр
(виртуальная защищённая функция-член std::ctype<CharT> )
[virtual]
преобразует символ или символы из char в CharT
(виртуальная защищённая функция-член std::ctype<CharT> )
[virtual]
преобразует символ или символы из CharT в char
(виртуальная защищённая функция-член std::ctype<CharT> )
[virtual]
классифицирует символ или последовательность символов
(виртуальная защищённая функция-член std::ctype<CharT> )
[virtual]
находит первый символ в последовательности, соответствующий заданной классификации
(виртуальная защищённая функция-член std::ctype<CharT> )
[virtual]
находит первый символ в последовательности, не соответствующий заданной классификации
(виртуальная защищённая функция-член std::ctype<CharT> )

Унаследовано от std:: ctype<char> (только если CharT является char )

Вложенные типы

Тип Определение
char_type char

Члены данных

Член Описание
std::locale::id id [static] идентификатор аспекта
const std:: size_t table_size [static] размер таблицы классификации, не менее 256

Функции-члены

получает таблицу классификации символов
(публичная функция-член std::ctype <char> )
получает таблицу классификации символов локали "C"
(публичная статическая функция-член std::ctype <char> )
классифицирует символ или последовательность символов, используя таблицу классификации
(публичная функция-член std::ctype <char> )
находит первый символ в последовательности, соответствующий заданной классификации, используя таблицу классификации
(публичная функция-член std::ctype <char> )
находит первый символ в последовательности, не соответствующий заданной классификации, используя таблицу классификации
(публичная функция-член std::ctype <char> )
вызывает do_toupper
(публичная функция-член std::ctype<CharT> )
вызывает do_tolower
(публичная функция-член std::ctype<CharT> )
вызывает do_widen
(публичная функция-член std::ctype<CharT> )
вызывает do_narrow
(публичная функция-член std::ctype<CharT> )

Защищённые функции-члены

[virtual]
преобразует символ или символы в верхний регистр
(виртуальная защищённая функция-член std::ctype<CharT> )
[virtual]
преобразует символ или символы в нижний регистр
(виртуальная защищённая функция-член std::ctype<CharT> )
[virtual]
преобразует символ или символы из char в CharT
(виртуальная защищённая функция-член std::ctype<CharT> )
[virtual]
преобразует символ или символы из CharT в char
(виртуальная защищённая функция-член std::ctype<CharT> )

Унаследовано от std:: ctype_base

Вложенные типы

Тип Определение
mask неуказанный BitmaskType тип (перечисление, целочисленный тип или bitset)

Константы-члены

space
[static]
значение mask идентифицирующее классификацию пробельных символов
(публичная статическая константа-член)
print
[static]
значение mask идентифицирующее классификацию печатных символов
(публичная статическая константа-член)
cntrl
[static]
значение mask идентифицирующее классификацию управляющих символов
(публичная статическая константа-член)
upper
[static]
значение mask идентифицирующее классификацию символов верхнего регистра
(публичная статическая константа-член)
lower
[static]
значение mask идентифицирующее классификацию символов нижнего регистра
(публичная статическая константа-член)
alpha
[static]
значение mask идентифицирующее классификацию алфавитных символов
(публичная статическая константа-член)
digit
[static]
значение mask идентифицирующее классификацию цифровых символов
(публичная статическая константа-член)
punct
[static]
значение mask идентифицирующее классификацию знаков пунктуации
(публичная статическая константа-член)
xdigit
[static]
значение mask идентифицирующее классификацию шестнадцатеричных цифр
(публичная статическая константа-член)
blank
[static] (C++11)
значение mask идентифицирующее классификацию пробельных символов (blank)
(публичная статическая константа-член)
alnum
[static]
alpha | digit
(публичная статическая константа-член)
graph
[static]
alnum | punct
(публичная статическая константа-член)

Примечания

std :: ctype_byname < char > был некорректно объявлен как явная специализация в синопсисе <locale> , и это объявление было удалено в результате решения проблемы LWG 1298 , но он остается обязательной специализацией, так же как и std :: ctype_byname < wchar_t > .

Пример

#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';
}

Вывод:

isupper('Þ', C locale) returned false
isupper('Þ', C locale with Unicode ctype) returned true

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены задним числом к ранее опубликованным стандартам C++.

DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 16 C++98 определение явной специализации std :: ctype_byname < char >
некорректно указывало имя и список параметров do_narrow
исправлено
LWG 616 C++98 в определении typename отсутствовал дизамбигуатор для mask добавлен

Смотрите также

определяет таблицы классификации символов
(шаблон класса)
специализация std::ctype для типа char
(специализация шаблона класса)