std::moneypunct
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header <locale>
   | 
||
|   template< class charT, bool International = false > class moneypunct : public std::locale::facet, public std::money_base;  | 
||
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 | 
[edit] Member types
| Member type | Definition | 
| char_type | charT | 
| string_type | std::basic_string<charT> | 
[edit] Member constants
| Member | Definition | 
| const bool intl (static) | International | 
[edit] Member objects
| Member | Type | 
| id (static) | std::locale::id | 
[edit] 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)  | |
[edit] 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 | 
[edit] Example
#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
[edit] See also
|    defines monetary formatting patterns   (class)  | |
|    extends std::moneypunct for the specified locale   (class template)  | |
|    parses and constructs a monetary value from an input character sequence  (class template)  | |
|    formats a monetary value for output as a character sequence   (class template)  | |