Namespaces
Variants

std:: messages_byname

From cppreference.net
Определено в заголовочном файле <locale>
template < class CharT >
class messages_byname : public std:: messages < CharT > ;

std::messages_byname — это фасет std::messages , который инкапсулирует извлечение строк из каталогов сообщений локали, указанной при его создании.

Содержание

Специализации

Стандартная библиотека гарантированно предоставляет следующие специализации:

Определено в заголовке <locale>
std :: messages_byname < char > доступ к каталогу сообщений для узких/многобайтовых строк
std :: messages_byname < wchar_t > доступ к каталогу сообщений для широких строк

Вложенные типы

Тип Определение
catalog std:: messages_base < CharT > :: catalog
string_type std:: basic_string < CharT >

Функции-члены

(constructor)
создает новый messages_byname фацет
(публичная функция-член)
(destructor)
уничтожает messages_byname фацет
(защищенная функция-член)

std::messages_byname:: messages_byname

explicit messages_byname ( const char * name, std:: size_t refs = 0 ) ;
explicit messages_byname ( const std:: string & name, std:: size_t refs = 0 ) ;
(начиная с C++11)

Создает новый фасет std::messages_byname для локали с именем name .

refs используется для управления ресурсами: если refs == 0 , реализация уничтожает фасет, когда уничтожается последний объект std::locale , который его содержит. В противном случае объект не уничтожается.

Параметры

name - имя локали
refs - количество ссылок, связывающих фасет

std::messages_byname:: ~messages_byname

protected :
~messages_byname ( ) ;

Уничтожает фасет.

Унаследовано от std:: messages

Вложенные типы

Тип Определение
char_type CharT
string_type std:: basic_string < CharT >

Члены данных

Член Описание
std::locale::id id [static] идентификатор аспекта

Функции-члены

вызывает do_open
(публичная функция-член std::messages<CharT> )
вызывает do_get
(публичная функция-член std::messages<CharT> )
вызывает do_close
(публичная функция-член std::messages<CharT> )

Защищённые функции-члены

[virtual]
открывает именованный каталог сообщений
(виртуальная защищённая функция-член std::messages<CharT> )
[virtual]
извлекает сообщение из открытого каталога сообщений
(виртуальная защищённая функция-член std::messages<CharT> )
[virtual]
закрывает каталог сообщений
(виртуальная защищённая функция-член std::messages<CharT> )

Унаследовано от std:: messages_base

Вложенные типы

Тип Определение
catalog неопределённый знаковый целочисленный тип

Пример

#include <iostream>
#include <locale>
void try_with(const std::locale& loc)
{
    const std::messages<char>& facet = std::use_facet<std::messages<char>>(loc);
    std::messages<char>::catalog cat = facet.open("sed", std::cout.getloc());
    if (cat < 0)
        std::cout << "Could not open \"sed\" message catalog\n";
    else
        std::cout << "\"No match\" "
                  << facet.get(cat, 0, 0, "No match") << '\n'
                  << "\"Memory exhausted\" " 
                  << facet.get(cat, 0, 0, "Memory exhausted") << '\n';
    facet.close(cat);
}
int main()
{
    std::locale loc("en_US.utf8");
    std::cout.imbue(loc);
    try_with(std::locale(loc, new std::messages_byname<char>("de_DE.utf8")));
    try_with(std::locale(loc, new std::messages_byname<char>("fr_FR.utf8")));
    try_with(std::locale(loc, new std::messages_byname<char>("ja_JP.utf8")));
}

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

"No match" Keine Übereinstimmung
"Memory exhausted" Speicher erschöpft
"No match" Pas de concordance
"Memory exhausted" Mémoire épuisée
"No match" 照合しません
"Memory exhausted" メモリーが足りません

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

реализует извлечение строк из каталогов сообщений
(шаблон класса)