Namespaces
Variants

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

From cppreference.net
Défini dans l'en-tête <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) Fonction membre publique, appelle la fonction membre virtuelle protégée do_get de la classe la plus dérivée.
2) Obtient un message du catalogue de messages ouvert cat en utilisant les valeurs set , msgid et dfault d'une manière définie par l'implémentation. Si le message attendu n'est pas trouvé dans le catalogue, retourne une copie de dfault .

Table des matières

Paramètres

cat - identifiant du catalogue de messages obtenu à partir de open() et non encore transmis à close()
set - argument défini par l'implémentation, ensemble de messages dans POSIX
msgid - argument défini par l'implémentation, identifiant de message dans POSIX
dfault - la chaîne à rechercher dans le catalogue (si le catalogue utilise la recherche par chaîne) et également la chaîne à renvoyer en cas d'échec

Valeur de retour

Le message du catalogue ou une copie de dfault si aucun n'a été trouvé.

Notes

Sur les systèmes POSIX, cet appel de fonction se traduit généralement par un appel à catgets() , et les paramètres set , msgid , et dfault sont transmis à catgets() tels quels. Dans GNU libstdc++, cette fonction ignore set et msgid et appelle simplement gettext ( dfault ) de GNU dans la locale requise.

Exemple

L'exemple suivant démontre la récupération de messages : sur un système GNU/Linux typique, il lit depuis /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);
}

Sortie possible :

"No match" in German: Keine Übereinstimmung
"Memory exhausted" in German: Speicher erschöpft

Voir aussi