ctype<char>

一种将类模板 ctype\<CharType> 显式专用化为 char 类型的类,它描述一个对象来充当区域设置 facet,用来将类型 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> 类对象将指针存储到 ctype 掩码表的第一个元素,该掩码表是 ctype_base::mask 类型的 UCHAR_MAX + 1 元素数组。 它还存储布尔对象,指明当 ctype<Elem> 对象被销毁时是否应(使用 operator delete[])删除数组。

  • 其唯一的公共构造函数允许指定 ctype 掩码表 tab 和布尔对象 del,如果在销毁 ctype<char> 对象时应删除该数组,则布尔对象为 true,还会指定 reference-count 参数引用。

  • 受保护的成员函数 table 返回存储的 ctype 掩码表。

  • 静态成员对象 table_size 在 ctype 掩码表中指定最小的元素数。

  • 受保护的静态成员函数 classic_table 返回适合于“C”区域设置的 ctype 掩码表。

  • 没有受保护的虚拟成员函数 do_isdo_scan_is,或 do_scan_not。 相应的公共成员函数自身执行等效操作。

成员函数 do_narrowdo_widen 复制未改变的元素。

要求

标头:<locale>

命名空间: std

另请参阅

facet 类
ctype_base 类
C++ 标准库中的线程安全