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_byname<wchar_t> фасет для локализованного форматирования числовой информации для широких символов

Типы членов

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

Члены-функции

(конструктор)
создаёт новый фасет numpunct_byname
(публичная функция-член)
(деструктор)
уничтожает фасет 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>

Члены-функции

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

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

static std::locale::id id
id локали
(публичный объект-член)

Пример

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

#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/w/cpp/locale/numpunct_byname

Spec-Zone.ru

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