std::moneypunct<CharT,International>::positive_sign, do_positive_sign, negative_sign, do_negative_sign
Von cppreference.com
< cpp | locale | moneypunct
| Definiert 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) | |
1) Öffentliche Member-Funktion, ruft die Member-Funktion
do_positive_sign der am weitesten abgeleiteten Klasse auf.2) Öffentliche Member-Funktion, ruft die Member-Funktion
do_negative_sign der am weitesten abgeleiteten Klasse auf.3) Gibt den String zurück, der zur Formatierung von positiven Geldbeträgen verwendet wird.
3) Gibt den String zurück, der zur Formatierung von negativen Geldbeträgen verwendet wird.
Nur das erste Zeichen des zurückgegebenen Strings ist das Zeichen, das in der pos_format()/neg_format()-Position erscheint, die durch den Wert sign angegeben ist. Die restlichen Zeichen erscheinen nach dem Rest des Geldbetrags-Strings.
Insbesondere kann für negative_sign von "-" die Formatierung als "-1,23 €" erscheinen, während sie für negative_sign von "()" als "(1,23 €)" erscheinen würde.
[bearbeiten] Rückgabewert
Der String vom Typ string_type, der die Zeichen für das positive oder negative Vorzeichen enthält.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <iomanip> #include <iostream> #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'; }
Ausgabe
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 €)
[bearbeiten] Siehe auch
| [virtuell] |
liefert das Formatierungsmuster für Währungswerte (virtual protected member function) |