Freigeben über


ctype<char>-Klasse

Die Klasse ist eine explizite Spezialisierung der Klassenvorlage ctype\<CharType> zum Eingeben char, die ein Objekt beschreibt, das als Gebietsschema-Facet dienen kann, um verschiedene Eigenschaften eines Typs charzu charakterisieren.

Syntax

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

Hinweise

Die explizite Spezialisierung unterscheidet sich von der Klassenvorlage auf verschiedene Arten:

  • Ein Objekt der Klasse ctype<char> speichert einen Zeiger auf das erste Element einer Ctype-Maskentabelle, ein Array von UCHAR_MAX + 1 Elemente vom Typ ctype_base::mask. Außerdem wird ein boolesches Objekt gespeichert, das angibt, ob das Array gelöscht werden soll (mit operator delete[]) wenn das ctype<Elem-Objekt> zerstört wird.

  • Mit dem einzigen öffentlichen Konstruktor können Sie angeben tab, die ctype-Maskentabelle und deldas boolesche Objekt, das true ist, wenn das Array gelöscht werden soll, wenn das ctype<char> Objekt zerstört wird, sowie die Verweisanzahl-Parameterreferenzen.

  • Die geschützte Memberfunktion table gibt die gespeicherte Ctype-Maskentabelle zurück.

  • Das statische Memberobjekt table_size gibt die Mindestanzahl von Elementen in einer Ctype-Maskentabelle an.

  • Die geschützte statische Memberfunktion classic_table( gibt die ctype-Maskentabelle zurück, die für das Gebietsschema "C" geeignet ist.

  • Die geschützten virtuellen Memberfunktionen do_is, do_scan_is bzw. do_scan_not werden nicht verwendet. Die entsprechenden öffentlichen Memberfunktionen führen die jeweiligen Vorgänge selbst aus.

Die Memberfunktionen do_narrow und do_widen kopieren Elemente unverändert.

Anforderungen

Header:<locale>

Namespace: std

Siehe auch

facet-Klasse
ctype_base-Klasse
Threadsicherheit in der C++-Standardbibliothek