Namespaces
Variants

std::messages<CharT>:: close, std::messages<CharT>:: do_close

From cppreference.net
Défini dans l'en-tête <locale>
public :
void close ( catalog c ) const ;
(1)
protected :
virtual void do_close ( catalog c ) const ;
(2)
1) Fonction membre publique, appelle la fonction membre virtuelle protégée do_close de la classe la plus dérivée.
2) Libère les ressources définies par l'implémentation associées à un catalogue ouvert désigné par la valeur c de type catalog (hérité de std::messages_base ), qui a été obtenu à partir de open() .

Table des matières

Paramètres

c - un identifiant de catalogue ouvert valide, sur lequel close() n'a pas encore été appelé

Valeur de retour

(aucun)

Notes

Sur les systèmes POSIX, cet appel de fonction se traduit généralement par un appel à catclose() . Dans GNU libstdc++, qui est implémenté en termes de GNU gettext() , il ne fait rien.

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