- Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::moneypunct::positive_sign,do_positive_sign,negative_sign,(3) | C++ Standard Libary | std::moneypunct::positive_sign,do_positive_sign,negative_sign,(3) | 
NAME¶
std::moneypunct::positive_sign,do_positive_sign,negative_sign, - std::moneypunct::positive_sign,do_positive_sign,negative_sign,
Synopsis¶
 Defined in header <locale>
  
   public: (1)
  
   string_type positive_sign() const;
  
   public: (2)
  
   string_type negative_sign() const;
  
   protected: (3)
  
   virtual string_type do_positive_sign() const;
  
   protected: (4)
  
   virtual string_type do_negative_sign() const;
  
   1) Public member function, calls the member function do_positive_sign of the
    most
  
   derived class.
  
   2) Public member function, calls the member function do_negative_sign of the
    most
  
   derived class.
  
   3) Returns the string that is used for formatting of positive monetary
    values.
  
   3) Returns the string that is used for formatting of negative monetary
    values.
  
   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
    €)".
Return value¶
 The string of type string_type holding the characters to be used
    as positive or
  
   negative sign.
Example¶
// Run this code
  
   #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';
  
   }
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 €)
See also¶
 do_pos_format provides the formatting pattern for currency values
  
   do_neg_format (virtual protected member function)
  
   [virtual]
| 2024.06.10 | http://cppreference.com |