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) | |

