Namespaces
Variants

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

From cppreference.net
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)
1) Función miembro pública, llama a la función miembro virtual protegida do_get de la clase más derivada.
2) Obtiene un mensaje del catálogo de mensajes abierto cat utilizando los valores set , msgid y dfault de manera definida por la implementación. Si el mensaje esperado no se encuentra en el catálogo, devuelve una copia de dfault .

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

Véase también