Compartilhar via


Classe ctype<char>

A classe que é uma especialização explícita do modelo de classe ctype\<CharType> para o tipo char, descrevendo um objeto que pode funcionar como uma faceta de localidade para caracterizar várias propriedades de um caractere do tipo char.

Sintaxe

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

Comentários

A especialização explícita é diferente do modelo de classe de várias formas:

  • Um objeto da classe ctype<char> armazena um ponteiro para o primeiro elemento de uma tabela de máscara ctype, uma matriz de elementos UCHAR_MAX + 1 do tipo ctype_base::mask. Ele também armazena um objeto booliano que indica se a matriz deve ser excluída (usando operator delete[]) quando o objeto ctype<Elem> é destruído.

  • Seu único construtor público permite especificar tab, a tabela de máscara ctype e del, o objeto booliano que será verdadeiro se a matriz precisar ser excluída quando o objeto ctype<char> for destruído, bem como as referências de parâmetro de contagem de referência.

  • A função de membro protegida table retorna a tabela de máscara ctype armazenada.

  • O objeto de membro estático table_size especifica o número mínimo de elementos em uma tabela de máscara ctype.

  • A função de membro estático protegida classic_table ( retorna a tabela de máscara ctype apropriada para a localidade “C”.

  • Não existem funções de membro virtuais protegidas do_is, do_scan_is ou do_scan_not. As funções de membro público correspondentes executam as operações equivalentes por conta própria.

As funções de membro do_narrow e do_widen copiam os elementos inalterados.

Requisitos

Cabeçalho:<locale>

Namespace: std

Confira também

Classe facet
Classe ctype_base
Acesso Thread-Safe na Biblioteca Padrão C++