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_is、do_scan_is,或 do_scan_not。 相应的公共成员函数自身执行等效操作。
成员函数 do_narrow 和 do_widen 复制未改变的元素。
要求
标头:<locale>
命名空间: std