在线文档教程
C++
本土化 | Localizations

std::messages_byname

STD:信息[医]名名

Defined in header
template< class CharT > class messages_byname : public std::messages<CharT>;

std::messages_bynamestd::messagesfacet,它封装了从构造时指定的区域设置的消息目录中检索字符串。

标准库提供了两个专门化。

在标头中定义<locale>

*。

STD:信息[医]名名<char>窄/多字节消息目录访问

STD:信息[医]名<wchar[医]T>宽字符串消息目录访问

成员类型

Member typeDefinition
catalogstd::messages_base<CharT>::catalog
string_typestd::basic_string<CharT>

成员函数

(constructor)constructs a new messages_byname facet (public member function)
(destructor)destroys a messages_byname facet (protected member function)

STD:信息[医]名称::消息[医]名名

explicit messages_byname( const char* name, std::size_t refs = 0
explicit messages_byname( const std::string& name, std::size_t refs = 0 (since C++11)

构造一个新的std::messages_byname区域设置的方面name...

refs用于资源管理:如果refs == 0时,该实现破坏了面。std::locale保存它的对象被销毁。否则,该对象不会被销毁。

参数

name-the name of the locale
refs-the number of references that link to the facet

STD:信息[医]署名::~消息[医]名名

protected: ~messages_byname(

摧毁了这个面。

继承自STD:信息

成员类型

Member typeDefinition
char_typecharT
string_typestd::basic_string<charT>

成员对象

Member nameType
id (static)std::locale::id

成员函数

openinvokes do_open (public member function of std::messages)
getinvokes do_get (public member function of std::messages)
closeinvokes do_close (public member function of std::messages)

受保护成员函数

do_open virtualopens a named message catalog (virtual protected member function of std::messages)
do_get virtualretrieves a message from an open message catalog (virtual protected member function of std::messages)
do_close virtualcloses a message catalog (virtual protected member function of std::messages)

二次

#include <iostream> #include <locale> void try_with(const std::locale& loc) { const std::messages<char>& facet = std::use_facet<std::messages<char> >(loc) ; std::messages<char>::catalog cat = facet.open("sed", std::cout.getloc() if(cat < 0 ) std::cout << "Could not open \"sed\" message catalog\n"; else std::cout << "\"No match\" " << facet.get(cat, 0, 0, "No match") << '\n' << "\"Memory exhausted\" " << facet.get(cat, 0, 0, "Memory exhausted") << '\n'; facet.close(cat } int main() { std::locale loc("en_US.utf8" std::cout.imbue(loc try_with(std::locale(loc, new std::messages_byname<char>("de_DE.utf8")) try_with(std::locale(loc, new std::messages_byname<char>("fr_FR.utf8")) try_with(std::locale(loc, new std::messages_byname<char>("ja_JP.utf8")) }

二次

可能的产出:

二次

"No match" Keine Übereinstimmung "Memory exhausted" Speicher erschöpft "No match" Pas de concordance "Memory exhausted" Mémoire épuisée "No match" 照合しません "Memory exhausted" メモリーが足りません

二次

另见

messagesimplements retrieval of strings from message catalogs (class template)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/locale/Messages[医]名名