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 > |
Функции-члены
|
(constructor)
|
создает новый
moneypunct_byname
фацет
(публичная функция-член) |
|
(destructor)
|
уничтожает
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
[static]
|
идентификатор аспекта |
const
bool
intl
[static]
|
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>
)
|
Защищенные функции-члены
|
[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>
)
|
Унаследовано от 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
(шаблон класса) |