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 类模板的专用化,这个类模板的对象可存储消息序列的副本。

另请参阅

<区域设置>
messages_base 类
C++ 标准库中的线程安全