Spec-Zone.ru › C++

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

Определено в заголовке <locale>
public:
void close( catalog c ) const;
(1)
protected:
virtual void do_close( catalog c ) const;
(2)
1) Открытая функция-член, вызывает защищённую виртуальную функцию-член do_close самого производного класса.
2) Освобождает ресурсы, определённые реализацией, связанные с открытым каталогом, обозначенным значением c типа catalog (унаследованного от std::messages_base), которое было получено из open().

Параметры

c - допустимый идентификатор открытого каталога, для которого ещё не был вызван close()

Возвращаемое значение

(ничего)

Примечания

На системах POSIX этот вызов функции обычно переводится в вызов catclose(). В GNU libstdc++, который реализован в терминах GNU gettext(), он ничего не делает.

Пример

Следующий пример демонстрирует получение сообщений: на типичной системе GNU/Linux он считывает из /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);
}

Возможный вывод:

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

См. также

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/locale/messages/close

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API