Пространства имён
Варианты
Действия

std::locale

Материал из cppreference.com
 
 
Библиотека локализации
Локали и фасеты
Локали
Базовые классы категорий фасетов
фасеты ctype
числовые фасеты
фасеты сопоставления
фасеты времени
денежные фасеты
фасеты сообщений
Классификация и преобразование символов
Классификация символов
Преобразование
(C++11/17*)
(C++11/17*)
Фасеты преобразования кода
(C++11/17*)
(C++11/17*)    
(C++11/17*)
Локаль C
 
std::locale
Член типов
Оригинал:
Member types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Член функций
Оригинал:
Member functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Статические функции-члены
Оригинал:
Static member functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
 
<tbody> </tbody>
Определено в заголовочном файле <locale>
class locale;

Объект класса std::locale является индексным множеством указателей (со счётчиками ссылок) на фасеты. С каждым потоковым объектом библиотеки ввода / вывода C++ связана локаль std::locale, которая использует свои фасеты для разбора и форматирования всех данных. Кроме того, объект локали связывается с каждым объектом basic_regex. Также объекты локалей могут использоваться в качестве предикатов, выполняющих сравнение строк внутри стандартных контейнеров и алгоритмов; к ним возможен прямой доступ для получения или изменения хранимых в них фасетов. Каждая локаль, конструируемая в программе на C++, содержит как минимум следующие стандартные фасеты, однако программа может определять дополнительные специализации существующих фасетов или даже полностью новые фасеты и добавлять их в любой существующий объект локали.

Поддерживаемые фасеты
std::collate<char> std::collate<wchar_t>
std::ctype<char> std::ctype<wchar_t>
std::codecvt<char,char,mbstate_t>
std::codecvt<char16_t,char,mbstate_t>
std::codecvt<char32_t,char,mbstate_t>
std::codecvt<wchar_t,char,mbstate_t>
std::moneypunct<char>
std::moneypunct<char,true>
std::moneypunct<wchar_t>
std::moneypunct<wchar_t,true>
std::money_get<char> std::money_get<wchar_t>
std::money_put<char> std::money_put<wchar_t>
std::numpunct<char> std::numpunct<wchar_t>
std::num_get<char> std::num_get<wchar_t>
std::num_put<char> std::num_put<wchar_t>
std::time_get<char> std::time_get<wchar_t>
std::time_put<char> std::time_put<wchar_t>
std::messages<char> std::messages<wchar_t>

Типы-члены

тип индекса фасета: каждый класс фасета должен объявлять или наследовать публичный статический член этого типа
(класс) [править]
базовый класс для всех категорий фасетов: каждый фасет любой категории наследуется от этого типа
(класс) [править]
category
int
(определение типа)

Объекты-члены

none
[static]
нулевое значение типа category, указывающее, что фасет не относится ни к какой категории
(public static константа-элемент)
collate
[static]
битовая маска типа category, указывающая, что фасет относится к категории сравнения строк
(public static константа-элемент)
ctype
[static]
битовая маска типа category, указывающая, что фасет относится к категории ctype
(public static константа-элемент)
monetary
[static]
битовая маска типа category, указывающая, что фасет относится к категории денежных единиц
(public static константа-элемент)
numeric
[static]
битовая маска типа category, указывающая, что фасет относится к категории числовых единиц
(public static константа-элемент)
time
[static]
битовая маска типа category, указывающая, что фасет относится к категории единиц даты / времени
(public static константа-элемент)
messages
[static]
битовая маска типа category, указывающая, что фасет относится к категории сообщений
(public static константа-элемент)
all
[static]
collate | ctype | monetary | numeric | time | messages
(public static константа-элемент)

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

создаёт новую локаль
(public функция-элемент) [править]
разрушает локаль и фасеты, чей счётчик ссылок достиг нуля
(public функция-элемент) [править]
заменяет локаль
(public функция-элемент) [править]
конструирует локаль из идентификатора фасета времени компиляции, скопированном из другой локали
(public функция-элемент) [править]
возвращает имя локали или "*", если локаль не имеет имени
(public функция-элемент) [править]
(удалено в C++20)
сравнение на равенство между объектами локали
(public функция-элемент) [править]
лексикографически сравнивает две строки, используя фасет сопоставления этой локали
(public функция-элемент) [править]
[static]
изменяет глобальную локаль
(public static функция-элемент) [править]
[static]
получает ссылку на локаль "C"
(public static функция-элемент) [править]

Пример

Демонстрирует типичный (кросс-платформенный) пролог локале-зависимой программы

#include <iostream>
#include <locale>

int main()
{
    std::wcout << "Предпочитаемые пользователем настройки локали: " << std::locale("").name().c_str() << '\n';
    // при старте программы глобальная локаль установлена в локаль "C"
    std::wcout << 1000.01 << '\n';
    // заменяем глобальную локаль C++ (вместе с локалью C) на предпочитаемую пользователем локаль
    std::locale::global(std::locale("") );
    // используем новую глобальную локаль для последующего вывода широких символов
    std::wcout.imbue(std::locale());
    // снова выводим некоторое число
    std::wcout << 1000.01 << '\n';
}

Вывод:

Предпочитаемые пользователем настройки локали: en_US.UTF8
1000.01
1,000.01

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

получает фасет из локали
(шаблон функции) [править]
проверяет, реализует ли локаль определённый фасет
(шаблон функции) [править]
устанавливает языковой стандарт
(public функция-элемент std::ios_base) [править]
возвращает текущий языковой стандарт
(public функция-элемент std::ios_base) [править]