Spec-Zone.ru › C++

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>

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

decimal_point
вызывает do_decimal_point
(публичная функция-член std::moneypunct<CharT,International>)
thousands_sep
вызывает do_thousands_sep
(публичная функция-член std::moneypunct<CharT,International>)
grouping
вызывает do_grouping
(публичная функция-член std::moneypunct<CharT,International>)
curr_symbol
вызывает do_curr_symbol
(публичная функция-член std::moneypunct<CharT,International>)
positive_signnegative_sign
вызывает do_positive_sign или do_negative_sign
(публичная функция-член std::moneypunct<CharT,International>)
frac_digits
вызывает do_frac_digits
(публичная функция-член std::moneypunct<CharT,International>)
pos_formatneg_format
вызывает do_pos_format/do_neg_format
(публичная функция-член std::moneypunct<CharT,International>)

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

do_decimal_point
[virtual]
предоставляет символ для использования в качестве десятичного разделителя
(виртуальная защищенная функция-член std::moneypunct<CharT,International>)
do_thousands_sep
[virtual]
предоставляет символ для использования в качестве разделителя тысяч
(виртуальная защищенная функция-член std::moneypunct<CharT,International>)
do_grouping
[virtual]
предоставляет количество цифр между каждой парой разделителей тысяч
(виртуальная защищенная функция-член std::moneypunct<CharT,International>)
do_curr_symbol
[virtual]
предоставляет строку для использования в качестве идентификатора валюты
(виртуальная защищенная функция-член std::moneypunct<CharT,International>)
do_positive_signdo_negative_sign
[virtual]
предоставляет строку для указания положительного или отрицательного значения
(виртуальная защищенная функция-член std::moneypunct<CharT,International>)
do_frac_digits
[virtual]
предоставляет количество цифр для отображения после десятичной точки
(виртуальная защищенная функция-член std::moneypunct<CharT,International>)
do_pos_formatdo_neg_format
[virtual]
предоставляет шаблон форматирования для значений валюты
(виртуальная защищенная функция-член std::moneypunct<CharT,International>)

Константы членов

Член Определение
const bool intl (статический) International

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

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

Унаследовано от 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 руб

См. также

moneypunct
определяет параметры форматирования денежных знаков, используемые 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

Spec-Zone.ru

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