Namespaces
Variants

std::moneypunct<CharT,International>:: positive_sign, do_positive_sign, negative_sign, do_negative_sign

From cppreference.net
Definiert im 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 Memberfunktion, ruft die Memberfunktion do_positive_sign der am meisten abgeleiteten Klasse auf.
2) Öffentliche Memberfunktion, ruft die Memberfunktion do_negative_sign der am meisten abgeleiteten Klasse auf.
3) Gibt die Zeichenkette zurück, die für die Formatierung positiver Geldbeträge verwendet wird.
3) Gibt den String zurück, der für die Formatierung negativer Geldwerte verwendet wird.

Nur das erste Zeichen der zurückgegebenen Zeichenkette ist das Zeichen, das in der pos_format() / neg_format() Position erscheint, angezeigt durch den Wert sign . Die restlichen Zeichen erscheinen nach dem Rest der Währungszeichenkette.

Insbesondere für negative_sign von "-" kann die Formatierung als "-1.23 €" erscheinen, während für negative_sign von "()" sie als "(1.23 €)" erscheinen würde.

Rückgabewert

Die Zeichenkette vom Typ string_type , die die als positives oder negatives Vorzeichen zu verwendenden Zeichen enthält.

Beispiel

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

Siehe auch

stellt das Formatierungsmuster für Währungsbeträge bereit
(virtuelle geschützte Elementfunktion)