table of contents
        
      
      
    - Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::messages::get,std::messages::do_get(3) | C++ Standard Libary | std::messages::get,std::messages::do_get(3) | 
NAME¶
std::messages::get,std::messages::do_get - std::messages::get,std::messages::do_get
Synopsis¶
 Defined in header <locale>
  
   public:
  
   string_type get( catalog cat, int set, int msgid, const string_type&
    dfault ) (1)
  
   const;
  
   protected:
  
   virtual string_type do_get( catalog cat, int set, int msgid, const
    string_type& (2)
  
   dfault ) const;
  
   1) Public member function, calls the protected virtual member function do_get
    of the
  
   most derived class.
  
   2) Obtains a message from the open message catalog cat using the values set,
    msgid
  
   and dfault in implementation-defined manner. If the expected message is not
    found in
  
   the catalog, returns a copy of dfault.
Parameters¶
 cat - identifier of message catalog obtained from open() and not
    yet passed to
  
   close()
  
   set - implementation-defined argument, message set in POSIX
  
   msgid - implementation-defined argument, message id in POSIX
  
   dfault - the string to look up in the catalog (if the catalog uses string
    look-up)
  
   and also the string to return in case of a failure
Return value¶
The message from the catalog or a copy of dfault if none was found.
Notes¶
 On POSIX systems, this function call usually translates to a call
    to catgets(), and
  
   the parameters set, msgid, and dfault are passed to catgets() as-is. In GNU
  
   libstdc++, this function ignores set and msgid and simply calls GNU
    gettext(dfault)
  
   in the required locale.
Example¶
 The following example demonstrated retrieval of messages: on a
    typical GNU/Linux
  
   system it reads from /usr/share/locale/de/LC_MESSAGES/sed.mo.
// Run this code
  
   #include <iostream>
  
   #include <locale>
  
   int main()
  
   {
  
   std::locale loc("de_DE.utf8");
  
   std::cout.imbue(loc);
  
   auto& facet = std::use_facet<std::messages<char>>(loc);
  
   auto cat = facet.open("sed", loc);
  
   if (cat < 0)
  
   std::cout << "Could not open german \"sed\" message
    catalog\n";
  
   else
  
   std::cout << "\"No match\" in German: "
  
   << facet.get(cat, 0, 0, "No match") << '\n'
  
   << "\"Memory exhausted\" in German: "
  
   << facet.get(cat, 0, 0, "Memory exhausted") << '\n';
  
   facet.close(cat);
  
   }
Possible output:¶
 "No match" in German: Keine Übereinstimmung
  
   "Memory exhausted" in German: Speicher erschöpft
See also¶
| 2024.06.10 | http://cppreference.com |