本地化库
本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析,以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C++ 标准库的其他组件的行为。
平面类别基类
定义字符分类类别
std::ctype_base
class ctype_base; |
类 std::ctype_base 列出 std::ctype 平面所继承的字符分类类别。
成员类型
mask | 未指定的位掩码类型 (BitmaskType) (枚举、整数类型或 bitset ) (typedef) |
成员常量
space [静态] | 鉴别空白字符分类的 mask 值(公开静态成员常量) |
[静态] | 鉴别可打印字符分类的 mask 值(公开静态成员常量) |
cntrl [静态] | 鉴别控制字符分类的 mask 值(公开静态成员常量) |
upper [静态] | 鉴别大写字符分类的 mask 值(公开静态成员常量) |
lower [静态] | 鉴别小写字符分类的 mask 值(公开静态成员常量) |
alpha [静态] | 鉴别字母字符分类的 mask 值(公开静态成员常量) |
digit [静态] | 鉴别数字字符分类的 mask 值(公开静态成员常量) |
punct [静态] | 鉴别标点字符分类的 mask 值(公开静态成员常量) |
xdigit [静态] | 鉴别十六进制数字字符分类的 mask 值(公开静态成员常量) |
blank [静态] (C++11) | 鉴别空格字符分类的 mask 值(公开静态成员常量) |
alnum [静态] | alpha | digit (公开静态成员常量) |
graph [静态] | alnum | punct (公开静态成员常量) |
定义字符转换错误
std::codecvt_base
class codecvt_base; |
类 std::codecvt_base 提供 std::codecvt 平面所继承并使用的转换状态常量。
成员类型
成员类型 | 定义 |
enum result { ok, partial, error, noconv }; | 无作用域枚举类型 |
枚举常量 | 定义 |
ok | 完成转换而无错误 |
partial | 未转换所有源字符 |
error | 遇到非法字符 |
noconv | 不要求转换,输入与输出类型相同 |
注意
值 std::codecvt_base::partial 用于指示目标范围太短,无以接受转换结果,或输入在可为合法多字节字符的中部被截断。
定义消息目录类型
std::messages_base
class messages_base; |
类 std::messages_base 提供为 std::messages 平面所继承和使用的类型定义。
成员类型
成员类型 | 定义 |
catalog | /* 未指定的有符号整数类型 */ |
注意
catalog
在 C++11 中被错误指定为 int
,这于 LWG 问题 #2028 更正,并包含于 C++14 。
定义日期格式常量
std::time_base
class time_base; |
类 std::time_base 提供日期顺序常量,它为 std::time_get 平面所继承。
成员类型
成员类型 | 定义 |
enum dateorder { no_order, dmy, mdy, ymd, ydm }; | 无作用域枚举类型 |
枚举常量 | 定义 |
no_order | 未指定的顺序 |
dmy | 日、月、年(欧洲)顺序 |
mdy | 月、日、年(美国)顺序 |
ymd | 年、月、日 |
ydm | 年、日、月 |
定义货币格式化模式
std::money_base
class money_base; |
类 std::money_base 提供为 std::moneypunct 、 std::money_get 和 std::money_put 平面所继承并使用的常量。
成员类型
成员类型 | 定义 |
enum part { none, space, symbol, sign, value }; | 无作用域枚举类型 |
struct pattern { char field[4]; }; | 货币格式类型 |
枚举常量 | 解释 |
none | 容许但不要求空白符,除了在末位置不容许空白符 |
space | 要求一或多个空白字符 |
symbol | 要求 moneypunct::curr_symbol 所返回的字符序列 |
sign | 要求 moneypunct::positive_sign 或 moneypunct::negative_sign 所返回的首个字符 |
value | 要求绝对数值货币值 |
注意
货币格式是四个可转换为 std::money_base::part 的 char 的数组。该序列中, symbol
、 sign
和 value
的每一个准确出现一次,而 space
或 none
出现于剩余位置。 none
的值若存在,则不在首位; space
的值若存在,则不在首位或末位。
std::moneypunct 的标准特化所返回的默认格式为 {symbol, sign, none, value}