std::messages_byname (3) - Linux Manuals

std::messages_byname: std::messages_byname

NAME

std::messages_byname - std::messages_byname

Synopsis


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


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
constructor (public member function)
              destroys a messages_byname facet
destructor (protected member function)


 std::messages_byname::messages_byname


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)


Constructs a new std::messages_byname facet for a locale with name.
refs is used for resource management: if refs == 0, the implementation destroys the facet, when the last std::locale object holding it is destroyed. Otherwise, the object is not destroyed.

Parameters


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


 std::messages_byname::~messages_byname


protected:
~messages_byname();


Destroys the facet.


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
open (public member function of std::messages<CharT>)
      invokes do_get
get (public member function of std::messages<CharT>)
      invokes do_close
close (public member function of std::messages<CharT>)

Protected member functions


do_open opens a named message catalog
          (virtual protected member function of std::messages<CharT>)
[virtual]


do_get retrieves a message from an open message catalog
          (virtual protected member function of std::messages<CharT>)
[virtual]


do_close closes a message catalog
          (virtual protected member function of std::messages<CharT>)
[virtual]

Example


// Run this code


  #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")));
  }

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


         implements retrieval of strings from message catalogs
messages (class template)