Класс locale
Класс, описывающий объект языкового стандарта, инкапсулирующий данные по соответствующей культуре в качестве набора аспектов, которые собирательно определяют ту или иную локализованную среду.
class locale;
Заметки
Аспект является указателем на объект класса, являющийся производным от класса facet, который обладает открытым объектом в формате:
static locale::id id;
Можно задать открытый набор данных аспектов. Можно также создать объект языкового стандарта, назначающий произвольное количество аспектов.
Предопределенные группы данных аспектов представляют категории языкового стандарта, которыми в стандартной библиотеке C традиционно управляет функция setlocale.
Категория collate (LC_COLLATE) включает аспекты:
collate<char>
collate<wchar_t>
Категория ctype (LC_CTYPE) включает аспекты:
ctype<char>
ctype<wchar_t>
codecvt<char, char, mbstate_t>
codecvt<wchar_t, char, mbstate_t>
codecvt<char16_t, char, mbstate_t>
codecvt<char32_t, char, mbstate_t>
Категория monetary (LC_MONETARY) включает аспекты:
moneypunct<char, false>
moneypunct<wchar_t, false>
moneypunct<char, true>
moneypunct<wchar_t, true>
money_get<char, istreambuf_iterator<char> >
money_get<wchar_t, istreambuf_iterator<wchar_t> >
money_put<char, ostreambuf_iterator<char> >
money_put<wchar_t, ostreambuf_iterator<wchar_t> >
Категория numeric (LC_NUMERIC) включает аспекты:
num_get<char, istreambuf_iterator<char> >
num_get<wchar_t, istreambuf_iterator<wchar_t> >
num_put<char, ostreambuf_iterator<char> >
num_put<wchar_t, ostreambuf_iterator<wchar_t> >
numpunct<char>
numpunct<wchar_t>
Категория time (LC_TIME) включает аспекты:
time_get<char, istreambuf_iterator<char> >
time_get<wchar_t, istreambuf_iterator<wchar_t> >
time_put<char, ostreambuf_iterator<char> >
time_put<wchar_t, ostreambuf_iterator<wchar_t> >
Категория messages (LC_MESSAGES) включает аспекты:
messages<char>
messages<wchar_t>
(Последняя категория необходима Posix для, но не стандартной библиотеке C).
Некоторые из этих предопределенных аспектов используются классами iostreams для управления преобразованием числовых значений в текстовые последовательности и наоборот.
Объект класса locale также сохраняет имя языкового стандарта в качестве объекта класса string. Использование недопустимого имени языкового стандарта для создания аспекта языкового стандарта или объекта языкового стандарта генерирует объект класса runtime_error. Сохраненное имя языкового стандарта — "*", если объект языкового стандарта не может быть уверен в том, что локальный стандарт языка C точно соответствует представленному данным объектом. В противном случае можно установить соответствующий языковой стандарт в стандартной библиотеке C, для объекта языкового стандарта _Loc, путем обращения к setlocale(LC_ALL, _Loc.имя().c_str()).
В данном случае можно также вызвать статическую функцию-член:
static locale empty( );
создать объект языкового стандарта без аспектов. Это также прозрачный языковой стандарт; если функции шаблона has_facet и use_facet не могут найти запрошенный аспект в прозрачном языковом стандарте, они в первую очередь обращаются к глобальному языковому стандарту, а затем, если таковой является прозрачным, к классическому языковому стандарту. Таким образом, можно написать:
cout.imbue(locale::empty( ));
Последующие вставки в cout опосредованы текущим состоянием глобального языкового стандарта. Можно даже написать:
locale loc(locale::empty( ), locale::classic( ),
locale::numeric);
cout.imbue(loc);
Числовые правила форматирования для последующих вставок в cout остаются такими же, как в языковом стандарте C, даже если глобальный языковой стандарт предоставляет другие правила вставки дат и денежных сумм.
Конструкторы
Создает языковой стандарт, копию языкового стандарта или копию языкового стандарта, в которой аспект или категория заменены аспектом или категорией из другого языкового стандарта. |
Определения типов
Целочисленный тип, который содержит значения битовой маски для обозначения стандартных семейств аспектов. |
Функции-члены
Вставляет аспект из определенного языкового стандарта в целевой языковой стандарт. |
|
Возвращает имя сохраненного языкового стандарта. |
Статические функции
Данная статическая функция-член возвращает объект языкового стандарта, представляющий классический языковой стандарт C. |
|
Сброс языкового стандарта программы по умолчанию. |
Операторы
Проверка двух языковых стандартов на неравенство. |
|
Сравнивает два объекта basic_string. |
|
Проверка двух языковых стандартов на равенство. |
Классы
Класс, используемый как базовый класс для всех аспектов языкового стандарта. |
|
Класс члена содержит уникальный идентификатор аспекта, применяемый в качестве индекса для поиска аспектов в языковом стандарте. |
Требования
Заголовок: <locale>
Пространство имен: std