< cpp‎ | locale
Revision as of 15:53, 16 February 2013 by (Talk)

Template:ddcl list begin <tr class="t-dsc-header">

Defined in header <locale>

<td></td> <td></td> </tr> <tr class="t-dcl ">

<td class="t-dcl-nopad">
template< class CharT >
class messages_byname : public std::messages<CharT>;

<td class="t-dcl-nopad"> </td> <td class="t-dcl-nopad"> </td> </tr> Template:ddcl list end

std::messages_byname is a std::messages facet which encapsulates retrieval of strings from message catalogs of the locale specified at its construction.

Two specializations are provided by the standard library

Defined in header <locale>
std::messages_byname<char> narrow/multibyte message catalog access
std::messages_byname<wchar_t> wide string message catalog access


Member types

Member type Definition
catalog std::messages_base<CharT>::catalog
string_type std::basic_string<CharT>

Member functions

constructs a new messages_byname facet
(public member function)
destructs a messages_byname facet
(protected member function)

Inherited from std::messages

Member types

Member type Definition
char_type charT
string_type std::basic_string<charT>

Member objects

Member name Type
id (static) std::locale::id

Member functions

invokes do_open
(public member function of std::messages) [edit]
invokes do_get
(public member function of std::messages) [edit]
invokes do_close
(public member function of std::messages) [edit]

Protected member functions

opens a named message catalog
(virtual protected member function of std::messages) [edit]
retrieves a message from an open message catalog
(virtual protected member function of std::messages) [edit]
closes a message catalog
(virtual protected member function of std::messages) [edit]


#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 ="sed", std::cout.getloc());
    if(cat < 0 )
        std::cout << "Could not open \"sed\" message catalog\n";
        std::cout << "\"No match\" "
                  << facet.get(cat, 0, 0, "No match") << '\n'
                  << "\"Memory exhausted\" " 
                  << facet.get(cat, 0, 0, "Memory exhausted") << '\n';
int main()
    std::locale loc("en_US.utf8");
    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")));

Possible output:

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

See also

Template:cpp/locale/dcl list messages