Поделиться через


Класс ctype<char>

Класс является явной специализацией шаблона класса для типаchar, описывая объект, который может служить аспектом языкового стандарта ctype\<CharType> для описания различных свойств символа типаchar.

Синтаксис

template <>
class ctype<char>
: public ctype_base
{
public:
    typedef char _Elem;
    typedef _Elem char_type;
    bool is(
    mask _Maskval,
    _Elem _Ch) const;

    const _Elem* is(
    const _Elem* first,
    const _Elem* last,
    mask* dest) const;

    const _Elem* scan_is(
    mask _Maskval,
    const _Elem* first,
    const _Elem* last) const;

    const _Elem* scan_not(
    mask _Maskval,
    const _Elem* first,
    const _Elem* last) const;

    _Elem tolower(
    _Elem _Ch) const;

    const _Elem* tolower(
    _Elem* first,
    const _Elem* last) const;

    _Elem toupper(
    _Elem _Ch) const;

    const _Elem* toupper(
    _Elem* first,
    const _Elem* last) const;

    _Elem widen(
    char _Byte) const;

    const _Elem* widen(
    const char* first,
    const char* last,
    _Elem* dest) const;

    const _Elem* _Widen_s(
    const char* first,
    const char* last,
    _Elem* dest,
    size_t dest_size) const;

    _Elem narrow(
    _Elem _Ch,
    char _Dflt = '\0') const;

    const _Elem* narrow(
    const _Elem* first,
    const _Elem* last,
    char _Dflt,
    char* dest) const;

    const _Elem* _Narrow_s(
    const _Elem* first,
    const _Elem* last,
    char _Dflt,
    char* dest,
    size_t dest_size) const;

    static locale::id& id;
    explicit ctype(
    const mask* _Table = 0,
    bool _Deletetable = false,
    size_t _Refs = 0);

protected:
    virtual ~ctype();
//other protected members
};

Замечания

Явная специализация отличается от шаблона класса несколькими способами:

  • Объект класса ctype<char> сохраняет указатель на первый элемент таблицы маски типа, массив элементов типа UCHAR_MAX + 1.ctype_base::mask Он также сохраняет логический объект, указывающий, следует ли удалять массив (с помощью operator delete[]) при уничтожении объекта Ctype<Elem> .

  • Его единственный открытый конструктор позволяет указать tab, таблицу маски ctype и delлогический объект, который имеет значение true, если массив должен быть удален при ctype<char> уничтожении объекта, а также ссылочный параметр счетчика ссылок.

  • Функция защищенного члена table возвращает сохраненную таблицу маски ctype.

  • Объект table_size статического члена указывает минимальное количество элементов в таблице маски ctype.

  • Защищенная статическую функцию-член classic_table(возвращает таблицу маски типа, соответствующую языковому стандарту "C".

  • Отсутствуют защищенные виртуальные функции-члены do_is, do_scan_is или do_scan_not. Соответствующие открытые функции-члены самостоятельно выполняют эквивалентные операции.

Функции-члены do_narrow и do_widen копируют элементы без изменений.

Требования

Заголовок:<языковой стандарт>

Пространство имен: std

См. также

Класс facet
Класс ctype_base
Потокобезопасность в стандартной библиотеке C++