Namespaces
Variants

std:: moneypunct_byname

From cppreference.net
Определено в заголовочном файле <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> )

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

предоставляет символ для использования в качестве десятичной точки
(виртуальная защищенная функция-член std::moneypunct<CharT,International> )
предоставляет символ для использования в качестве разделителя тысяч
(виртуальная защищенная функция-член std::moneypunct<CharT,International> )
[virtual]
предоставляет количество цифр между каждой парой разделителей тысяч
(виртуальная защищенная функция-член std::moneypunct<CharT,International> )
предоставляет строку для использования в качестве идентификатора валюты
(виртуальная защищенная функция-член std::moneypunct<CharT,International> )
предоставляет строку для обозначения положительного или отрицательного значения
(виртуальная защищенная функция-член std::moneypunct<CharT,International> )
предоставляет количество цифр для отображения после десятичной точки
(виртуальная защищенная функция-член std::moneypunct<CharT,International> )
предоставляет шаблон форматирования для денежных значений
(виртуальная защищенная функция-член 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
(шаблон класса)