名前空間
変種
操作

std::moneypunct<CharT,International>::pos_format, do_pos_format, neg_format, do_neg_format

提供: cppreference.com
< cpp‎ | locale‎ | moneypunct
 
 
 
 
ヘッダ <locale> で定義
public:
pattern pos_format() const;
(1)
public:
pattern neg_format() const;
(2)
protected:
virtual pattern do_pos_format() const;
(3)
protected:
virtual pattern do_neg_format() const;
(4)
1) public メンバ関数。 最も派生したクラスのメンバ関数 do_pos_format を呼びます。
2) public メンバ関数。 最も派生したクラスのメンバ関数 do_neg_format を呼びます。
3) 正の金額値の書式化を記述する (std::money_base::format 型の) 書式構造体を返します。
4) 負の金額値の書式化を記述する (std::money_base::format 型の) 書式構造体を返します。

std::moneypunct の標準の特殊化はパターン {symbol, sign, none, value} を返します。

目次

[編集] 戻り値

このロケールによって使用される書式を記述する std::money_base::format 型のオブジェクト。

[編集] ノート

std::money_put は正の値の書式化のために pos_format を、負の値の書式化のために neg_format を使用するのに対して、 std::money_get はすべての金額値の解析のために neg_format を使用します。 これは neg_format が pos_format と互換性があると仮定しています。

[編集]

#include <locale>
#include <iostream>
#include <iomanip>
 
struct my_punct : std::moneypunct_byname<char, false> {
    my_punct(const char* name) : moneypunct_byname(name) {}
    pattern do_pos_format() const { return { {value, space, symbol, sign} };}
    pattern do_neg_format() const { return { {value, space, symbol, sign} };}
};
int main()
{
    std::cout.imbue(std::locale("en_US.utf8"));
    std::cout << "american locale: " << std::showbase
              << std::put_money(12345678.0) << '\n';
 
    std::cout.imbue(std::locale(std::cout.getloc(), new my_punct("en_US.utf8")));
    std::cout << "locale with modified moneypunct:\n"
              << std::put_money(12345678.0)  << '\n'
              << std::put_money(-12345678.0) << '\n';
}

出力:

american locale: $123,456.78
locale with modified moneypunct:
123,456.78 $
123,456.78 $-

[編集] 関連項目

通貨識別子として使用する文字列を提供します
(仮想プロテクテッドメンバ関数) [edit]
正または負の値を示す文字列を提供します
(仮想プロテクテッドメンバ関数) [edit]
[仮想]
入力ストリームから金額値を解析します
(std::money_get<CharT,InputIt>の仮想プロテクテッドメンバ関数) [edit]
[仮想]
金額値を書式化して出力ストリームに書き込みます
(std::money_put<CharT,OutputIt>の仮想プロテクテッドメンバ関数) [edit]