public member function
<locale>

std::moneypunct::neg_format

pattern neg_format() const;
Return format of negative monetary expressions
Returns the pattern that specifies the format for negative monetary expressions.

This pattern represents the order in which the components of a monetary expression are ordered.

It is expressed as an object of member type pattern (inherited from money_base), which is an array of four char elements, each corresponding to a value of member enum type part (also inherited from money_base).

Internally, this function simply calls the virtual protected member do_neg_format, which for the standard specializations returns a pattern object initialized to {symbol,sign,none,value}.

引數



返回值

A pattern object containing four part elements (casted to chars), each representing one of
成員常量representation說明
0Nothing. Can be expanded to whitespaces (unless it is the last specifier)cannot be be the first specifier
space1At least one white space, but can be expanded to morecan neither be the first nor last specifier
symbol2Currency symbol
sign3Negative sign
4The numerical value of the monetary expression
Member type pattern is inherited from money_base: it is an array of four char elements, each expected to be the conversion of one of the part values: the sequence contains (in some unspecified order that depends on the locale) either one space element or one none element and exactly one of each of the others (symbol, sign and value).

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// moneypunct example
#include <iostream>       // std::cout
#include <locale>         // std::locale, std::moneypunct, std::use_facet

// overload inserter to print patterns:
std::ostream& operator<< (std::ostream& os, std::moneypunct<char>::pattern p)
{
  for (int i=0; i<4; i++)
    switch (p.field[i]) {
      case std::moneypunct<char>::none: std::cout << "none "; break;
      case std::moneypunct<char>::space: std::cout << "space "; break;
      case std::moneypunct<char>::symbol: std::cout << "symbol "; break;
      case std::moneypunct<char>::sign: std::cout << "sign "; break;
      case std::moneypunct<char>::value: std::cout << "value "; break;
    }
  return os;
}

int main ()
{
  std::locale mylocale;
  const std::moneypunct<char>& mp = std::use_facet<std::moneypunct<char> >(mylocale);

  std::cout << "moneypunct in locale \"" << mylocale.name() << "\":\n";

  std::cout << "decimal_point: " << mp.decimal_point() << '\n';
  std::cout << "thousands_sep: " << mp.thousands_sep() << '\n';
  std::cout << "grouping: " << mp.grouping() << '\n';
  std::cout << "curr_symbol: " << mp.curr_symbol() << '\n';
  std::cout << "positive_sign: " << mp.positive_sign() << '\n';
  std::cout << "negative_sign: " << mp.negative_sign() << '\n';
  std::cout << "frac_digits: " << mp.frac_digits() << '\n';
  std::cout << "pos_format: " << mp.pos_format() << '\n';
  std::cout << "neg_format: " << mp.neg_format() << '\n';
  
  return 0;
}

可能的輸出

moneypunct in locale "C":
decimal_point:
thousands_sep:
grouping:
curr_symbol:
positive_sign:
negative_sign: -
frac_digits: 0
pos_format: symbol sign none value
neg_format: symbol sign none value


資料競爭

訪問此分面。

異常安全

強異常保證: 如果丟擲異常,則沒有副作用。

另見