Namespaces
Variants

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

From cppreference.net
Определено в заголовке <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

Смотрите также