messages 类
这个类模板描述了一个对象,该对象可以充当区域设置 facet,以便从给定区域设置的国际化消息目录中检索本地化消息。
目前,虽然已实现消息类,但没有任何消息。
语法
template <class CharType>
class messages : public messages_base;
参数
CharType
在程序中用于对区域设置中的字符进行编码的类型。
备注
对于任何区域设置 facet,静态对象 ID 的初始存储值为零。 首次尝试访问其存储值后,将在 ID 中存储唯一正值。
大致来说,此 facet 会打开基类 messages_base 中定义的消息目录,检索所需要的信息,然后关闭目录。
构造函数
构造函数 | 说明 |
---|---|
messages | 消息 facet 构造函数。 |
Typedef
类型名称 | 说明 |
---|---|
char_type | 一种用于显示消息的字符类型。 |
string_type | 一种类型,此类型描述包含 basic_string 类型字符的 CharType 类型字符串。 |
成员函数
成员函数 | 说明 |
---|---|
close | 关闭消息目录。 |
do_close | 一种为失去消息目录而调用的虚拟函数。 |
do_get | 一种为检索消息目录而调用的虚拟函数。 |
do_open | 一种为打开消息目录而调用的虚拟函数。 |
get | 检索消息目录。 |
open | 打开消息目录。 |
要求
标头:<locale>
命名空间: std
messages::char_type
一种用于显示消息的字符类型。
typedef CharType char_type;
注解
该类型是模板参数 CharType 的同义词。
messages::close
关闭消息目录。
void close(catalog _Catval) const;
参数
_Catval
要关闭的目录。
注解
此成员函数调用 do_close(_ Catval)。
messages::do_close
一种为失去消息目录而调用的虚拟函数。
virtual void do_close(catalog _Catval) const;
参数
_Catval
要关闭的目录。
注解
受保护的成员函数将关闭消息目录 _Catval,该目录必须已通过对 do_open 的早期调用处于打开状态。
必须从以前打开的且未关闭的目录获取 _Catval。
示例
请参阅 close 的示例,它调用 do_close
。
messages::do_get
一种为检索消息目录而调用的虚拟函数。
virtual string_type do_get(
catalog _Catval,
int _Set,
int _Message,
const string_type& _Dfault) const;
参数
_Catval
指定要搜索的消息目录的标识值。
_Set
用于在消息目录中查找消息的第一个标识。
_Message
用于在消息目录中查找消息的第二个标识。
_Dfault
失败时返回的字符串。
返回值
它在失败时返回 _Dfault 的副本。 否则,它返回指定的消息序列的副本。
备注
受保护的成员函数会尝试从消息目录 _Catval 中获取消息序列。 执行此操作时,它可能会使用 _Set、_Message 和 _Dfault。
示例
请参阅 get 的示例,它调用 do_get
。
messages::do_open
一种为打开消息目录而调用的虚拟函数。
virtual catalog do_open(
const string& _Catname,
const locale& _Loc) const;
参数
_Catname
要搜索的目录的名称。
_Loc
目录中要搜索的区域设置。
返回值
失败时返回一个小于零的值。 否则,返回的值可以用作稍后对 get 调用时的第一个自变量。
备注
受保护的成员函数会尝试打开名称为 _Catname 的消息目录。 执行此操作时,它可能会使用区域设置 _Loc
返回值应用作稍后对 close 调用时的自变量。
示例
请参阅 open 的示例,它调用 do_open
。
messages::get
检索消息目录。
string_type get(
catalog _CatVal,
int _Set,
int _Message,
const string_type& _Dfault) const;
参数
_Catval
指定要搜索的消息目录的标识值。
_Set
用于在消息目录中查找消息的第一个标识。
_Message
用于在消息目录中查找消息的第二个标识。
_Dfault
失败时返回的字符串。
返回值
它在失败时返回 _Dfault 的副本。 否则,它返回指定的消息序列的副本。
备注
成员函数返回 do_get( _Catval
, _Set
, _Message
, _Dfault
)。
messages::messages
消息 facet 构造函数。
explicit messages(
size_t _Refs = 0);
protected: messages(
const char* _Locname,
size_t _Refs = 0);
参数
_Refs
用于指定对象的内存管理类型的整数值。
_Locname
区域设置的名称。
注解
_Refs 参数可能的值及其含义:
0:对象的生存期由包含该对象的区域设置管理。
1:必须手动管理对象的生存期。
> 1:未定义这些值。
由于该析构函数受到保护,可能没有直接的示例。
构造函数通过 locale::facet( _Refs
) 初始化其基对象。
messages::open
打开消息目录。
catalog open(
const string& _Catname,
const locale& _Loc) const;
参数
_Catname
要搜索的目录的名称。
_Loc
目录中要搜索的区域设置。
返回值
失败时返回一个小于零的值。 否则,返回的值可以用作稍后对 get 调用时的第一个自变量。
备注
成员函数返回 do_open( _Catname
, _Loc
)。
messages::string_type
一种类型,此类型描述包含 basic_string
类型字符的 CharType
类型字符串。
typedef basic_string<CharType, Traits, Allocator> string_type;
备注
此类型描述 basic_string 类模板的专用化,这个类模板的对象可存储消息序列的副本。