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 объект, содержащий его, уничтожается. В противном случае объект не уничтожается.
Параметры
| имя | - | имя локали |
| ссылки | - | количество ссылок, связанных с фасетом |
std::moneypunct_byname::~moneypunct_byname
protected: ~moneypunct_byname(); |
Уничтожает фасет.
Наследованно от std::moneypunct
Типы членов
| Тип члена | Определение |
|---|---|
char_type | CharT |
string_type | std::basic_string<CharT> |
Члены-функции
вызывает 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>) |
Защищенные функции-члены
|
[virtual] | предоставляет символ для использования в качестве десятичного разделителя (виртуальная защищенная функция-член std::moneypunct<CharT,International>) |
|
[virtual] | предоставляет символ для использования в качестве разделителя тысяч (виртуальная защищенная функция-член std::moneypunct<CharT,International>) |
|
[virtual] | предоставляет количество цифр между каждой парой разделителей тысяч (виртуальная защищенная функция-член std::moneypunct<CharT,International>) |
|
[virtual] | предоставляет строку для использования в качестве идентификатора валюты (виртуальная защищенная функция-член std::moneypunct<CharT,International>) |
|
[virtual] | предоставляет строку для указания положительного или отрицательного значения (виртуальная защищенная функция-член std::moneypunct<CharT,International>) |
|
[virtual] | предоставляет количество цифр для отображения после десятичной точки (виртуальная защищенная функция-член std::moneypunct<CharT,International>) |
|
[virtual] | предоставляет шаблон форматирования для значений валюты (виртуальная защищенная функция-член std::moneypunct<CharT,International>) |
Константы членов
| Член | Определение |
|---|---|
const bool intl (статический) | International |
Объекты-члены
| static std::locale::id id | id локали (публичный объект-член) |
Унаследовано от std::money_base
| Тип члена | Определение |
|---|---|
| enum part { none, space, symbol, sign, value }; | тип перечисления без области видимости |
| struct pattern { char field[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/w/cpp/locale/moneypunct_byname