Defined in header <locale> | ||
---|---|---|
public: string_type positive_sign() const; | (1) | |
public: string_type negative_sign() const; | (2) | |
protected: virtual string_type do_positive_sign() const; | (3) | |
protected: virtual string_type do_negative_sign() const; | (4) |
do_positive_sign
of the most derived class.do_negative_sign
of the most derived class.Only the first character of the string returned is the character that appears in the pos_format()
/neg_format()
position indicated by the value sign
. The rest of the characters appear after the rest of the monetary string.
In particular, for negative_sign of "-"
, the formatting may appear as "-1.23 €"
, while for negative_sign of "()"
it would appear as "(1.23 €)"
.
The string of type string_type
holding the characters to be used as positive or negative sign.
#include <iostream> #include <iomanip> #include <locale> struct my_punct : std::moneypunct_byname<char, false> { my_punct(const char* name) : moneypunct_byname(name) {} string_type do_negative_sign() const { return "()"; } }; int main() { std::locale loc("de_DE.utf8"); std::cout.imbue(loc); std::cout << loc.name() << " negative sign is '" << std::use_facet<std::moneypunct<char>>(loc).negative_sign() << "' for example: " << std::showbase << std::put_money(-1234) << '\n'; std::locale loc2("ms_MY.utf8"); std::cout.imbue(loc2); std::cout << loc2.name() << " negative sign is '" << std::use_facet<std::moneypunct<char>>(loc2).negative_sign() << "' for example: " << std::put_money(-1234) << '\n'; std::cout.imbue(std::locale(std::cout.getloc(), new my_punct("de_DE.utf8"))); std::cout << "de_DE.utf8 with negative_sign set to \"()\": " << std::put_money(-1234) << '\n'; }
Output:
de_DE.utf8 negative sign is '-' for example: -12,34 € ms_MY.utf8 negative sign is '()' for example: (RM12.34) de_DE.utf8 with negative_sign set to "()": (12,34 €)
[virtual] | provides the formatting pattern for currency values (virtual protected member function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/locale/moneypunct/positive_sign