bool do_is(mask m, charT c) const;
const charT* do_is(const charT* low, const charT* high,
mask* vec) const;
Effects: Классифицирует символ или последовательность символов. Для каждого символа аргумента определяет значение M типа ctype_base::mask. Вторая форма определяет значение M типа ctype_base::mask для каждого *p where (low <= p && p < high)и помещает его в vec[p - low].
Returns: Первая форма возвращает результат выражения (M & m) != 0; то есть, true если персонаж имеет указанные характеристики. Вторая форма возвращается high.
const charT* do_scan_is(mask m, const charT* low, const charT* high) const;
Returns: Наименьший указатель p в диапазоне [low, high) , который is(m, *p) будет возвращать true; в противном случае возвращается high.
const charT* do_scan_not(mask m, const charT* low, const charT* high) const;
Returns: Наименьший указатель p, если таковой имеется, в диапазоне [low, high) , который is(m, *p) может возвращать false; в противном случае возвращается high.
charT do_toupper(charT c) const;
const charT* do_toupper(charT* low, const charT* high) const;
Effects: Преобразует символ или символы в верхний регистр. Вторая форма заменяет каждый символ *p в диапазоне, [low, high) для которого существует соответствующий символ верхнего регистра, этим символом.
Returns: Первая форма возвращает соответствующий символ верхнего регистра, если известно, что он существует, или его аргумент, если нет. Вторая форма возвращается high.
charT do_tolower(charT c) const;
const charT* do_tolower(charT* low, const charT* high) const;
Effects: Преобразует символ или символы в нижний регистр. Вторая форма заменяет каждый символ *p в диапазоне, [low, high) для которого существует соответствующий символ нижнего регистра, на этот символ.
Returns: Первая форма возвращает соответствующий символ нижнего регистра, если известно, что он существует, или его аргумент, если нет. Вторая форма возвращается high.
charT do_widen(char c) const;
const char* do_widen(const char* low, const char* high,
charT* dest) const;
Effects: Применяет простейшее разумное преобразование char значения или последовательности char значений в соответствующее charT значение или значения.233 Единственные символы, для которых требуются уникальные преобразования, - это символы в basic source character set.
Для любого имени ctype категории с ctype <charT> фаской ctc и действительным ctype_base::mask значением M, (ctc.is(M, c) || !is(M, do_widen(c)) ) является true.234
Вторая форма преобразует каждый символ *p в диапазоне [low, high), помещая результат в dest[p - low].
char do_narrow(charT c, char dfault) const;
const charT* do_narrow(const charT* low, const charT* high,
char dfault, char* dest) const;
Effects: Применяет простейшее разумное преобразование charT значения или последовательности charT значений в соответствующее char значение или значения.
Для любого символа c в basic source character set преобразовании таково, что
do_widen(do_narrow(c, 0)) == c
Для любого имени ctype категории с ctype<char> фаской ctc однако, и ctype_base::mask значением M,
(is(M, c) || !ctc.is(M, do_narrow(c, dfault)) )
есть true (если не do_narrow возвращается dfault). Кроме того, для любого цифрового символа cвыражение (do_narrow(c, dfault) - '0') оценивается как цифровое значение символа. Вторая форма преобразует каждый символ *p в диапазоне [low, high), помещая результат (или, dfault если простое преобразование недоступно) в dest[p - low].
Returns: Первая форма возвращает преобразованное значение; или dfault если нет доступного отображения. Вторая форма возвращается high.
Аргумент char do_widen предназначен для приема значений, полученных из символьных литералов, для преобразования в кодировку языкового стандарта.
Другими словами, преобразованный символ не является членом какой-либо классификации символов, которая c также не является членом.