Spec-Zone.ru › C++

std::numpunct_byname

Определён в заголовке <locale>
template< class CharT >
class numpunct_byname : public std::numpunct<CharT>;

std::numpunct_byname — это фасет std::numpunct, который инкапсулирует предпочтения локали в отношении числовой пунктуации, заданной при его создании.

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

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

Определён в заголовке <locale>
std::numpunct_byname<char> зависящий от локали фасет std::numpunct для ввода-вывода узких символов
std::numpunct_byname<wchar_t> зависящий от локали фасет std::numpunct для ввода-вывода широких символов

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

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

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

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

std::numpunct_byname::numpunct_byname

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

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

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

Параметры

name - имя локали
refs - количество ссылок на фасет

std::numpunct_byname::~numpunct_byname

protected:
~numpunct_byname();

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

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

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

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

Члены-данные

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

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

decimal_point
вызывает do_decimal_point
(открытая функция-член std::numpunct<CharT>)
thousands_sep
вызывает do_thousands_sep
(открытая функция-член std::numpunct<CharT>)
grouping
вызывает do_grouping
(открытая функция-член std::numpunct<CharT>)
truenamefalsename
вызывает do_truename или do_falsename
(открытая функция-член std::numpunct<CharT>)

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

do_decimal_point
[virtual]
предоставляет символ, используемый в качестве десятичного разделителя
(виртуальная защищённая функция-член std::numpunct<CharT>)
do_thousands_sep
[virtual]
предоставляет символ, используемый в качестве разделителя тысяч
(виртуальная защищённая функция-член std::numpunct<CharT>)
do_grouping
[virtual]
предоставляет количество цифр между каждой парой разделителей тысяч
(виртуальная защищённая функция-член std::numpunct<CharT>)
do_truenamedo_falsename
[virtual]
предоставляет строку, используемую в качестве имени логических значений true и false
(виртуальная защищённая функция-член std::numpunct<CharT>)

Пример

В этом примере показано, как применить правила числовой пунктуации другого языка, не изменяя остальные настройки локали.

#include <iostream>
#include <locale>

int main()
{
    const double number = 1000.25;
    std::wcout << L"default locale: " << number << L'\n';
    std::wcout.imbue(std::locale(std::wcout.getloc(),
                                 new std::numpunct_byname<wchar_t>("ru_RU.UTF8")));
    std::wcout << L"default locale with russian numpunct: " << number << L'\n';
}

Вывод:

default locale: 1000.25
default locale with russian numpunct: 1 000,25

См. также

numpunct
определяет правила числовой пунктуации
(шаблон класса)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/locale/numpunct_byname

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API