次の方法で共有


locale クラス

特定のローカライズされた環境を集合的に定義する一連のファセットとして、カルチャ固有の情報をカプセル化するロケール オブジェクトを表すクラス。

class locale;

解説

ファセットは、フォームのパブリック オブジェクトがある facet クラスから派生したクラスのオブジェクトへのポインターです。

static locale::id id;

制約のない一連のファセットを定義できます。 任意の数のファセットを指定するロケール オブジェクトを構築することもできます。

これらのファセットの定義済みのグループは、従来の標準 C ライブラリでは setlocale 関数で管理されていたロケールのカテゴリを表します。

collate カテゴリ (LC_COLLATE) には、次のファセットが含まれます。

collate<char>
collate<wchar_t>

ctype カテゴリ (LC_CTYPE) には、次のファセットが含まれます。

ctype<char>
ctype<wchar_t>
codecvt<char, char, mbstate_t>
codecvt<wchar_t, char, mbstate_t>
codecvt<char16_t, char, mbstate_t>
codecvt<char32_t, char, mbstate_t>

monetary カテゴリ (LC_MONETARY) には、次のファセットが含まれます。

moneypunct<char, false>
moneypunct<wchar_t, false>
moneypunct<char, true>
moneypunct<wchar_t, true>
money_get<char, istreambuf_iterator<char> >
money_get<wchar_t, istreambuf_iterator<wchar_t> >
money_put<char, ostreambuf_iterator<char> >
money_put<wchar_t, ostreambuf_iterator<wchar_t> >

numeric カテゴリ (LC_NUMERIC) には、次のファセットが含まれます。

num_get<char, istreambuf_iterator<char> >
num_get<wchar_t, istreambuf_iterator<wchar_t> >
num_put<char, ostreambuf_iterator<char> >
num_put<wchar_t, ostreambuf_iterator<wchar_t> >
numpunct<char>
numpunct<wchar_t>

time カテゴリ (LC_TIME) には、次のファセットが含まれます。

time_get<char, istreambuf_iterator<char> >
time_get<wchar_t, istreambuf_iterator<wchar_t> >
time_put<char, ostreambuf_iterator<char> >
time_put<wchar_t, ostreambuf_iterator<wchar_t> >

messages カテゴリ (LC_MESSAGES) には、次のファセットが含まれます。

messages<char>
messages<wchar_t>

(最後のカテゴリは Posix で必要ですが、C 標準では必要ありません。)

これらの定義済みのファセットの一部は、数値とテキスト シーケンスとの変換を制御するために、iostreams クラスによって使用されます。

クラス ロケールのオブジェクトは、ロケール名を string クラスのオブジェクトとして格納します。 無効なロケール名を使用してロケールのファセットまたはロケール オブジェクトを構築すると、runtime_error クラスのオブジェクトがスローされます。 ロケール オブジェクトで、C スタイルのロケールがオブジェクトによって表されるロケールに正確に対応するかどうかを確認できない場合、格納されるロケール名は "*" です。 それ以外の場合は、ロケール オブジェクト _Loc について、setlocale(LC_ALL, _Loc.name().c_str()) を呼び出すことによって、標準 C ライブラリ内で一致するロケールを設定できます。

この実装では、次の静的メンバー関数を呼び出すことによって、

static locale empty( );

ファセットがないロケール オブジェクトを構築することもできます。 このロケールは透過的ロケールでもあります。テンプレート関数 has_facetuse_facet で要求されたファセットを透過的ロケール内で見つけることができなかった場合、最初にグローバル ロケールを参照し、次にクラシック ロケールを参照します。 したがって、次のように記述できます。

cout.imbue(locale::empty( ));

cout への以降の挿入は、グローバル ロケールの現在の状態に基づいて仲介されます。 次のように記述することもできます。

locale loc(locale::empty( ), locale::classic( ),
    locale::numeric);
cout.imbue(loc);

cout への以降の挿入についての数値書式設定規則は、グローバル ロケールで日付や金額の挿入についての変更規則が提供されている場合でも、C のロケールの場合と同様です。

コンストラクター

ロケール

ロケール、ロケールのコピー、またはファセットやカテゴリが別のロケールのファセットやカテゴリで置換されたロケールのコピーを作成します。

Typedef

category

標準ファセット ファミリを示すビットマスク値を指定する整数型。

メンバー関数

combine

ターゲット ロケールに指定されたロケールのファセットを挿入します。

name

格納されているロケール名を返します。

静的関数

classic

この静的メンバー関数は、クラシック C ロケールを表すロケール オブジェクトを返します。

global

プログラムの既定のロケールをリセットします。

演算子

operator!=

2 つのロケールが等しくないかどうかをテストします。

operator( )

2 つの basic_string オブジェクトを比較します。

operator==

2 つのロケールが等しいかどうかをテストします。

クラス

facet

すべてのロケールのファセットの基底クラスとして機能するクラス。

id

このメンバー クラスは、ロケール内でファセットを検索するためのインデックスとして使用される一意のファセット ID を提供します。

必要条件

ヘッダー: <locale>

名前空間: std

参照

関連項目

<locale>

コード ページ

ロケール名、言語、および国/地域識別文字列

C++ 標準ライブラリ内のスレッド セーフ