std:: numpunct
|
ヘッダーで定義
<locale>
|
||
|
template
<
class
CharT
>
class numpunct ; |
||
facet
std::numpunct
は数値の区切り文字に関する設定をカプセル化します。ストリームI/O操作では、
std::numpunct
が
std::num_get
および
std::num_put
を通じて使用され、数値入力の解析と数値出力のフォーマットを行います。
std::numpunct
でサポートされる数値のフォーマットは以下で説明されます。ここで
digit
は
fmtflags
引数値で指定された基数セットを表し、
thousands-sep
と
decimal-point
はそれぞれ
thousands_sep()
および
decimal_point()
関数の結果です。
整数値のフォーマットは以下の通りです:
integer ::= [sign] units sign ::= plusminus plusminus ::= '+' | '-' units ::= digits [thousands-sep units] digits ::= digit [digits]
thousand-sep
の間の桁数(
digits
の最大サイズ)は、
grouping()
の結果によって指定されます。
浮動小数点値のフォーマットは以下の通りです:
floatval ::= [sign] units [decimal-point [digits]] [e [sign] digits] |
[sign] decimal-point digits [e [sign] digits]
e ::= 'e' | 'E'
継承図
目次 |
特殊化
標準ライブラリは以下の特殊化を提供することが保証されています(これらは あらゆるロケールオブジェクトで実装が必須 とされています):
|
ヘッダーで定義
<locale>
|
|
| std :: numpunct < char > | "C"ロケール設定の同等機能を提供 |
| std :: numpunct < wchar_t > | "C"ロケール設定のワイド文字版同等機能を提供 |
ネスト型
| 型 | 定義 |
char_type
|
CharT
|
string_type
|
std:: basic_string < CharT > |
データメンバ
| メンバー | 説明 |
std::locale::id
id
[static]
|
facet の識別子 |
メンバー関数
新しい
numpunct
ファセットを構築する
(public member function) |
|
numpunct
ファセットを破棄する
(protected member function) |
|
do_decimal_point
を呼び出す
(public member function) |
|
do_thousands_sep
を呼び出す
(public member function) |
|
do_grouping
を呼び出す
(public member function) |
|
do_truename
または
do_falsename
を呼び出す
(public member function) |
プロテクテッドメンバー関数
|
[virtual]
|
小数点として使用する文字を提供する
(仮想保護メンバー関数) |
|
[virtual]
|
千の区切り文字として使用する文字を提供する
(仮想保護メンバー関数) |
|
[virtual]
|
千の区切り文字の各ペア間の桁数を提供する
(仮想保護メンバー関数) |
|
[virtual]
|
ブーリアン値
true
および
false
の名称として使用する文字列を提供する
(仮想保護メンバー関数) |
例
以下の例は、 true と false の文字列表現を変更します:
#include <iostream> #include <locale> struct french_bool : std::numpunct<char> { string_type do_truename() const override { return "vrai"; } string_type do_falsename() const override { return "faux"; } }; int main() { std::cout << "default locale: " << std::boolalpha << true << ", " << false << '\n'; std::cout.imbue(std::locale(std::cout.getloc(), new french_bool)); std::cout << "locale with modified numpunct: " << std::boolalpha << true << ", " << false << '\n'; }
出力:
default locale: true, false locale with modified numpunct: vrai, faux
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 338 | C++98 |
sign
トークンは
+
または
-
の後にオプションの空白を許可していた
|
空白を削除 |
関連項目
|
指定されたロケール用のnumpunctファセットを作成する
(クラステンプレート) |