Namespaces
Variants
Actions

std::messages<CharT>::get, std::messages<CharT>::do_get

From cppreference.com
< cpp‎ | locale‎ | messages
 
 
 
Localization library
 
 
Defined in header <locale>
public:
string_type get( catalog cat, int set, int msgid, const string_type& dfault ) const;
(1)
protected:
virtual string_type do_get( catalog cat, int set, int msgid, const string_type& dfault ) const;
(2)
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.

[edit] 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

[edit] Return value

The message from the catalog or a copy of dfault if none was found.

[edit] 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.

[edit] 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

[edit] See also

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/locale/messages/get&oldid=159027"

AltStyle によって変換されたページ (->オリジナル) /