std::moneypunct_byname
Определён в заголовочном файле <locale> | ||
|---|---|---|
template< class CharT, bool Intl = false > class moneypunct_byname : public std::moneypunct<CharT, Intl>; |
std::moneypunct_byname — это фасет std::moneypunct, который инкапсулирует параметры форматирования денежных значений локали, указанной при его создании.
Специализации
Стандартная библиотека гарантирует наличие каждой специализации, удовлетворяющей следующим требованиям к типам:
-
CharTявляется одним из типов char и wchar_t, и -
Intlявляется возможной специализацией с параметром bool.
Вложенные типы
| Тип | Определение |
|---|---|
pattern |
std::money_base::pattern |
string_type | std::basic_string<CharT> |
Функции-члены
создаёт новый фасет moneypunct_byname (открытая функция-член) |
|
уничтожает фасет moneypunct_byname (защищённая функция-член) |
std::moneypunct_byname::moneypunct_byname
explicit moneypunct_byname( const char* name, std::size_t refs = 0 ); | ||
explicit moneypunct_byname( const std::string& name, std::size_t refs = 0 ); | (начиная с C++11) |
Создаёт новый фасет std::moneypunct_byname для локали с name.
refs используется для управления ресурсами: если refs == 0, реализация уничтожает фасет, когда уничтожается последний объект std::locale, содержащий его. В противном случае объект не уничтожается.
Параметры
| name | - | имя локали |
| refs | - | количество ссылок на фасет |
std::moneypunct_byname::~moneypunct_byname
protected: ~moneypunct_byname(); |
Уничтожает фасет.
Унаследовано от std::moneypunct
Вложенные типы
| Тип | Определение |
|---|---|
char_type |
CharT |
string_type | std::basic_string<CharT> |
Данные-члены
| Член | Описание |
|---|---|
std::locale::id id [статический] | идентификатор фасета |
constbool intl [статический] |
International |
Функции-члены
вызывает do_decimal_point (открытая функция-член std::moneypunct<CharT,International>) |
|
вызывает do_thousands_sep (открытая функция-член std::moneypunct<CharT,International>) |
|
вызывает do_grouping (открытая функция-член std::moneypunct<CharT,International>) |
|
вызывает do_curr_symbol (открытая функция-член std::moneypunct<CharT,International>) |
|
вызывает do_positive_sign или do_negative_sign (открытая функция-член std::moneypunct<CharT,International>) |
|
вызывает do_frac_digits (открытая функция-член std::moneypunct<CharT,International>) |
|
вызывает do_pos_format/do_neg_format (открытая функция-член std::moneypunct<CharT,International>) |
Защищённые функции-члены
|
[виртуальная] | возвращает символ, используемый в качестве десятичного разделителя (виртуальная защищённая функция-член std::moneypunct<CharT,International>) |
|
[виртуальная] | возвращает символ, используемый в качестве разделителя групп разрядов (виртуальная защищённая функция-член std::moneypunct<CharT,International>) |
|
[виртуальная] | возвращает количество цифр между каждой парой разделителей групп разрядов (виртуальная защищённая функция-член std::moneypunct<CharT,International>) |
|
[виртуальная] | возвращает строку, используемую в качестве обозначения валюты (виртуальная защищённая функция-член std::moneypunct<CharT,International>) |
|
[виртуальная] | возвращает строку, обозначающую положительное или отрицательное значение (виртуальная защищённая функция-член std::moneypunct<CharT,International>) |
|
[виртуальная] | возвращает количество цифр, отображаемых после десятичного разделителя (виртуальная защищённая функция-член std::moneypunct<CharT,International>) |
|
[виртуальная] | возвращает шаблон форматирования денежных значений (виртуальная защищённая функция-член std::moneypunct<CharT,International>) |
Унаследовано от std::money_base
Вложенные типы
| Тип | Определение |
|---|---|
| enumpart{none,space,symbol,sign,value}; | необласть перечисления |
| structpattern{charfield[4];}; | тип денежного формата |
| Константа перечисления | Описание |
|---|---|
none | пробелы допускаются, но не обязательны, кроме последней позиции, где пробелы не допускаются |
space | требуется один или несколько пробельных символов |
symbol | требуется последовательность символов, возвращаемая функцией std::moneypunct::curr_symbol |
sign | требуется первый из символов, возвращаемых функцией std::moneypunct::positive_sign или std::moneypunct::negative_sign |
value | требуется абсолютное числовое денежное значение |
Пример
В этом примере показано, как применить правила форматирования денежных значений другого языка, не изменяя остальную часть локали.
#include <iomanip>
#include <iostream>
#include <locale>
int main()
{
long double mon = 1234567;
std::locale::global(std::locale("en_US.utf8"));
std::wcout.imbue(std::locale());
std::wcout << L"american locale: " << std::showbase
<< std::put_money(mon) << '\n';
std::wcout.imbue(std::locale(std::wcout.getloc(),
new std::moneypunct_byname<wchar_t>("ru_RU.utf8")));
std::wcout << L"american locale with russian moneypunct: "
<< std::put_money(mon) << '\n';
}
Вывод:
american locale: $12,345.67 american locale with russian moneypunct: 12 345.67 руб
См. также
задаёт параметры форматирования денежных значений, используемые std::money_get и std::money_put (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/locale/moneypunct_byname