Namespaces
Variants

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

From cppreference.net
Défini dans l'en-tête <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) Fonction membre publique, appelle la fonction membre do_positive_sign de la classe la plus dérivée.
2) Fonction membre publique, appelle la fonction membre do_negative_sign de la classe la plus dérivée.
3) Retourne la chaîne utilisée pour le formatage des valeurs monétaires positives.
3) Retourne la chaîne utilisée pour le formatage des valeurs monétaires négatives.

Seul le premier caractère de la chaîne retournée est le caractère qui apparaît dans la pos_format() / neg_format() position indiquée par la valeur sign . Les autres caractères apparaissent après le reste de la chaîne monétaire.

En particulier, pour un negative_sign de "-" , le formatage peut apparaître comme "-1.23 €" , tandis que pour un negative_sign de "()" il apparaîtrait comme "(1.23 €)" .

Valeur de retour

La chaîne de type string_type contenant les caractères à utiliser comme signe positif ou négatif.

Exemple

#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';
}

Sortie :

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

Voir aussi

fournit le motif de formatage pour les valeurs monétaires
(fonction membre protégée virtuelle)