Namespaces
Variants

std::ctype <char> :: is

From cppreference.net
定义于头文件 <locale>
bool is ( mask m, char c ) const ;
(1)
const char * is ( const char * low, const char * high, mask * vec ) const ;
(2)
1) 检查字符 c 是否根据成员函数 table() 返回的分类表被掩码 m 分类。实际计算为 table ( ) [ ( unsigned char ) c ] & m
2) 对于字符数组 [ low , high ) 中的每个字符,从成员函数 table() 返回的分类表中读取其完整分类掩码(即计算 table ( ) [ ( unsigned char ) * p ] ),并将其存储到 vec 所指数组的对应元素中。

如果 ( unsigned char ) c >= std:: ctype < char > :: table_size ,则将使用实现定义的值替代 table ( ) [ ( unsigned char ) c ] ,该值可能因 c 的不同而有所差异。

目录

参数

c - 待分类字符
m - 用于单个字符分类的掩码
low - 指向字符数组中首个字符的指针
high - 指向字符数组结束位置后一位的指针
vec - 指向待填充掩码数组首元素的指针

返回值

1) true c m table ( ) 中分类,否则为 false
2) high

注释

与主模板 std:: ctype 不同,此特化版本在字符分类时不会执行虚函数调用。要自定义行为,派生类可以向基类构造函数提供非默认的分类表。

示例

缺陷报告

以下行为变更缺陷报告被追溯应用于先前发布的C++标准。

缺陷报告 应用于 发布时的行为 正确行为
LWG 28 C++98 重载 (2) 将值从 vec 复制到 table ( )
这与预期行为相反
已修正

参见

[virtual]
对字符或字符序列进行分类
( std::ctype<CharT> 的虚保护成员函数)