ctype<char>-klass

Klassen är en explicit specialisering av klassmallen ctype<CharType> för att skriva char, som beskriver ett objekt som kan fungera som en språkvariant för att karakterisera olika egenskaper för ett tecken av typen char.

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

Anmärkningar

Den explicita specialiseringen skiljer sig från klassmallen på flera sätt:

  • Ett objekt i klassen ctype<char> lagrar en pekare till det första elementet i en ctype-masktabell, en matris med UCHAR_MAX + 1 element av typen ctype_base::mask. Det lagrar också ett booleskt objekt som anger om matrisen ska tas bort (med hjälp av operator delete[]) när ctype<Elem-objektet> förstörs.

  • Med den enda offentliga konstruktorn kan du ange tab, tabellen ctype mask och del, det booleska objektet som är sant om matrisen ska tas bort när ctype<char> objektet förstörs, samt referensantalsparametern refs.

  • Funktionen skyddad medlem table returnerar den lagrade ctype-masktabellen.

  • Det statiska medlemsobjektet table_size anger det minsta antalet element i en ctype-masktabell.

  • Den skyddade statiska medlemsfunktionen classic_table returnerar den ctype-masktabell som är lämplig för språkvarianten "C".

  • Det finns inga skyddade virtuella medlemsfunktioner do_is, do_scan_is eller do_scan_not. Motsvarande offentliga medlemsfunktioner utför motsvarande åtgärder själva.

Medlemsfunktionerna do_narrow och do_widen kopiera element oförändrade.

Kravspecifikation

Rubrik:<Locale>

namnområde: std

Se även

fasetteringsklass
ctype_base-klass
Trådsäkerhet i C++ Standard Library