Namespaces
Variants

std:: numpunct_byname

From cppreference.net
ヘッダーで定義 <locale>
template < class CharT >
class numpunct_byname : public std:: numpunct < CharT > ;

std::numpunct_byname は、構築時に指定されたロケールの数値区切り文字設定をカプセル化する std::numpunct ファセットです。

目次

特殊化

標準ライブラリは以下の特殊化を提供することが保証されています:

ヘッダーで定義 <locale>
std :: numpunct_byname < char > ロケール固有の std::numpunct ファセット(ナロー文字I/O用)
std :: numpunct_byname < wchar_t > ロケール固有の std::numpunct ファセット(ワイド文字I/O用)

ネスト型

定義
char_type CharT
string_type std:: basic_string < CharT >

メンバー関数

(constructor)
新しい numpunct_byname ファセットを構築する
(public member function)
(destructor)
numpunct_byname ファセットを破棄する
(protected member function)

std::numpunct_byname:: numpunct_byname

explicit numpunct_byname ( const char * name, std:: size_t refs = 0 ) ;
explicit numpunct_byname ( const std:: string & name, std:: size_t refs = 0 ) ;
(C++11以降)

指定されたロケール名 name に対して新しい std::numpunct_byname ファセットを構築します。

refs はリソース管理に使用されます: refs == 0 の場合、実装はこのファセットを保持する最後の std::locale オブジェクトが破棄されるときにファセットを破棄します。それ以外の場合、オブジェクトは破棄されません。

パラメータ

name - ロケール名
refs - ファセットにリンクする参照数

std::numpunct_byname:: ~numpunct_byname

protected :
~numpunct_byname ( ) ;

ファセットを破棄します。

std::numpunct から継承

ネストされた型

定義
char_type CharT
string_type std:: basic_string < CharT >

データメンバ

メンバ 説明
std::locale::id id [static] ファセット の識別子

メンバ関数

do_decimal_point を呼び出す
( std::numpunct<CharT> の公開メンバ関数)
do_thousands_sep を呼び出す
( std::numpunct<CharT> の公開メンバ関数)
do_grouping を呼び出す
( std::numpunct<CharT> の公開メンバ関数)
do_truename または do_falsename を呼び出す
( std::numpunct<CharT> の公開メンバ関数)

保護メンバ関数

小数点として使用する文字を提供する
( std::numpunct<CharT> の仮想保護メンバ関数)
千の区切り文字として使用する文字を提供する
( std::numpunct<CharT> の仮想保護メンバ関数)
[virtual]
千の区切り文字の各ペア間の桁数を提供する
( std::numpunct<CharT> の仮想保護メンバ関数)
ブーリアン値 true および false の名前として使用する文字列を提供する
( std::numpunct<CharT> の仮想保護メンバ関数)

この例は、ロケールの他の部分を変更せずに別の言語の数値句読点ルールを適用する方法を示しています。

#include <iostream>
#include <locale>
int main()
{
    const double number = 1000.25;
    std::wcout << L"default locale: " << number << L'\n';
    std::wcout.imbue(std::locale(std::wcout.getloc(),
                                 new std::numpunct_byname<wchar_t>("ru_RU.UTF8")));
    std::wcout << L"default locale with russian numpunct: " << number << L'\n';
}

出力:

default locale: 1000.25
default locale with russian numpunct: 1 000,25

関連項目

数値の区切り規則を定義する
(クラステンプレート)