std::moneypunct
From cppreference.com
Template:cpp/locale/moneypunct/sidebar Template:ddcl list begin <tr class="t-dsc-header">
<td>Defined in header
</td>
<locale>
<td></td> <td></td> </tr> <tr class="t-dcl ">
<td class="t-dcl-nopad">template< class charT, bool International = false >
class moneypunct : public std::locale::facet, public std::money_base;
</td>
class moneypunct : public std::locale::facet, public std::money_base;
<td class="t-dcl-nopad"> </td> <td class="t-dcl-nopad"> </td> </tr> Template:ddcl list end
The facet std::moneypunct encapsulates monetary value format preferences. Stream I/O manipulators std::get_money and std::put_money use std::moneypunct through std::money_get and std::money_put for parsing monetary value input and formatting monetary value output.
Four specializations are provided by the standard library
Defined in header
<locale> | |
std::moneypunct<char> | provides equivalents of the "C" locale preferences |
std::moneypunct<wchar_t> | provides wide character equivalents of the "C" locale preferences |
std::moneypunct<char, true> | provides equivalents of the "C" locale preferences, with international currency symbols |
std::moneypunct<wchar_t, true> | provides wide character equivalents of the "C" locale preferences, with international currency symbols |
Contents |
Member types
Member type | Definition |
char_type
|
charT
|
string_type
|
std::basic_string<charT> |
Member constants
Member | Definition |
const bool intl (static)
|
International
|
Member objects
Member | Type |
id (static)
|
std::locale::id |
Member functions
constructs a new moneypunct facet (public member function) | |
destructs a moneypunct facet (protected member function) | |
| |
invokes do_decimal_point (public member function) | |
invokes do_thousands_sep (public member function) | |
invokes do_grouping (public member function) | |
invokes do_curr_symbol (public member function) | |
invokes do_positive_sign (public member function) | |
invokes do_negative_sign (public member function) | |
invokes do_frac_digits (public member function) | |
invokes do_pos_format (public member function) | |
invokes do_neg_format (public member function) |
Protected member functions
[virtual] |
provides the character to use as decimal point (virtual protected member function) |
[virtual] |
provides the character to use as thousands separator (virtual protected member function) |
[virtual] |
provides the numbers of digits between each pair of thousands separators (virtual protected member function) |
[virtual] |
provides the string to use as the currency identifier (virtual protected member function) |
[virtual] |
provides the string to indicate a positive value (virtual protected member function) |
[virtual] |
provides the string to indicate a negative value (virtual protected member function) |
[virtual] |
provides the number of digits to display after the decimal point (virtual protected member function) |
[virtual] |
provides the formatting pattern for positive values (virtual protected member function) |
[virtual] |
provides the formatting pattern for negative values (virtual protected member function) |
Inherited from std::money_base
Member type | Definition |
enum part { none, space, symbol, sign, value }; | unscoped enumeration type |
struct pattern { char field[4]; }; | the monetary format type |
Enumeration constant | Definition |
none
|
whitespace is permitted but not required except in the last position, where whitespace is not permitted |
space
|
one or more whitespace characters are required |
symbol
|
the sequence of characters returned by moneypunct::curr_symbol is required |
sign
|
the first of the characters returned by moneypunct::positive_sign or moneypunct::negative_sign is required |
value
|
the absolute numeric monetary value is required |
Example
Run this code
#include <iostream> #include <locale> int main() { std::locale jp("ja_JP.UTF-8"); std::cout << "japanese currency symbol is " << std::use_facet<std::moneypunct<char, true>>(jp).curr_symbol() << "or " << std::use_facet<std::moneypunct<char>>(jp).curr_symbol() << " for short\n"; }
Output:
japanese currency symbol is JPY or ¥ for short