std::messages<CharT>:: get, std::messages<CharT>:: do_get
|
Definido en el encabezado
<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) | |
do_get
de la clase más derivada.
Contenidos |
Parámetros
| cat | - | identificador del catálogo de mensajes obtenido de open() y que aún no ha sido pasado a close() |
| set | - | argumento definido por la implementación, conjunto de mensajes en POSIX |
| msgid | - | argumento definido por la implementación, identificador de mensaje en POSIX |
| dfault | - | la cadena a buscar en el catálogo (si el catálogo utiliza búsqueda por cadenas) y también la cadena a devolver en caso de fallo |
Valor de retorno
El mensaje del catálogo o una copia de dfault si no se encontró ninguno.
Notas
En sistemas POSIX, esta llamada de función generalmente se traduce a una llamada a
catgets()
, y los parámetros
set
,
msgid
, y
dfault
se pasan a
catgets()
tal cual. En GNU libstdc++, esta función ignora
set
y
msgid
y simplemente llama a GNU
gettext
(
dfault
)
en la configuración regional requerida.
Ejemplo
El siguiente ejemplo demuestra la recuperación de mensajes: en un sistema GNU/Linux típico lee desde
/usr/share/locale/de/LC_MESSAGES/sed.mo
.
#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); }
Salida posible:
"No match" in German: Keine Übereinstimmung "Memory exhausted" in German: Speicher erschöpft