Classe ctype<char>

La classe è una specializzazione esplicita del modello ctype\<CharType> di classe da digitare char, che descrive un oggetto che può fungere da facet delle impostazioni locali per caratterizzare varie proprietà di un carattere di tipo char.

Sintassi

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

Osservazioni:

La specializzazione esplicita differisce dal modello di classe in diversi modi:

  • Un oggetto della classe ctype<char> archivia un puntatore al primo elemento di una tabella maschera ctype, una matrice di UCHAR_MAX + 1 elementi di tipo ctype_base::mask. Archivia inoltre un oggetto booleano che indica se la matrice deve essere eliminata (utilizzando operator delete[]) quando l'oggetto Elem> ctype<viene eliminato definitivamente.

  • L'unico costruttore pubblico consente di specificare tab, la tabella della maschera ctype e del, l'oggetto booleano true se la matrice deve essere eliminata quando l'oggetto ctype<char> viene eliminato definitivamente, nonché i riferimenti al parametro reference-count.

  • La funzione table membro protetta restituisce la tabella ctype mask archiviata.

  • L'oggetto table_size membro statico specifica il numero minimo di elementi in una tabella maschera ctype.

  • La funzione classic_tablemembro statica protetta ( restituisce la tabella ctype mask appropriata alle impostazioni locali "C".

  • Non ci sono funzioni membro virtuale protetto do_is, do_scan_is o do_scan_not. Le funzioni membro pubblico corrispondenti eseguono direttamente le operazioni equivalenti.

Le funzioni membro do_narrow e do_widen copiano elementi non modificati.

Requisiti

Intestazione:<impostazioni locali>

Spazio dei nomi: std

Vedi anche

Classe facet
Classe ctype_base
Thread Safety in the C++ Standard Library (Sicurezza dei thread nella libreria standard C++)