25 Localization library [localization]

25.4 Standard locale categories [locale.categories]

25.4.6 The monetary category [category.monetary]

25.4.6.3 Class template moneypunct [locale.moneypunct]

25.4.6.3.2 moneypunct virtual functions [locale.moneypunct.virtuals]

charT do_decimal_point() const;
Returns: The radix separator to use in case do_­frac_­digits() is greater than zero.250
charT do_thousands_sep() const;
Returns: The digit group separator to use in case do_­grouping() specifies a digit grouping pattern.251
string do_grouping() const;
Returns: A pattern defined identically as, but not necessarily equal to, the result of numpunct<charT>​::​​do_­grouping().252
string_type do_curr_symbol() const;
Returns: A string to use as the currency identifier symbol.253
string_type do_positive_sign() const; string_type do_negative_sign() const;
Returns: do_­positive_­sign() returns the string to use to indicate a positive monetary value;254 do_­negative_­sign() returns the string to use to indicate a negative value.
int do_frac_digits() const;
Returns: The number of digits after the decimal radix separator, if any.255
pattern do_pos_format() const; pattern do_neg_format() const;
Returns: The specializations required in Table 65 ([locale.category]), namely moneypunct<char>, moneypunct<​wchar_­t>, moneypunct<char, true>, and moneypunct<wchar_­t, true>, return an object of type pattern initialized to { symbol, sign, none, value }.256
In common U.
S.
locales this is '.'.
In common U.
S.
locales this is ','.
To specify grouping by 3s, the value is "\003" not "3".
For international specializations (second template parameter true) this is typically four characters long, usually three letters and a space.
This is usually the empty string.
In common U.
S.
 locales, this is 2.
Note that the international symbol returned by do_­curr_­sym() usually contains a space, itself; for example, "USD ".