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

std::locale

Материал из cppreference.com
< cpp‎ | locale
 
 
Локализация
Локализации и фасеты
locale
Классификация символов
Преобразования
Базовые классы фасетов
Категории фасетов
Зависящие от локализации категории фасетов
Не зависящие от локализации фасеты преобразования unicode
codecvt_utf8(C++11)
codecvt_utf16(C++11)
Локализации С
 
std::locale
Член типов
Оригинал:
Member types
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
locale::id
locale::facet
Член функций
Оригинал:
Member functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
locale::locale
locale::~locale
locale::operator=
locale::combine
locale::name
locale::operator==
locale::operator!=
locale::operator()
Статические функции-члены
Оригинал:
Static member functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
locale::global
locale::classic
 
Определено в заголовочном файле <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 функция-член) [править]
операторы сравнения на равенство объектов локалей
(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) [править]