std:: messages_byname
|
ヘッダーで定義
<locale>
|
||
|
template
<
class
CharT
>
class messages_byname : public std:: messages < CharT > ; |
||
std::messages_byname
は、構築時に指定されたロケールのメッセージカタログからの文字列取得をカプセル化する
std::messages
ファセットです。
目次 |
特殊化
標準ライブラリは以下の特殊化を提供することが保証されています:
|
ヘッダーで定義
<locale>
|
|
| std :: messages_byname < char > | ナローマルチバイトメッセージカタログアクセス |
| std :: messages_byname < wchar_t > | ワイド文字列メッセージカタログアクセス |
ネスト型
| 型 | 定義 |
catalog
|
std:: messages_base < CharT > :: catalog |
string_type
|
std:: basic_string < CharT > |
メンバー関数
|
(constructor)
|
新しい
messages_byname
ファセットを構築する
(public member function) |
|
(destructor)
|
messages_byname
ファセットを破棄する
(protected member function) |
std::messages_byname:: messages_byname
|
explicit
messages_byname
(
const
char
*
name,
std::
size_t
refs
=
0
)
;
|
||
|
explicit
messages_byname
(
const
std::
string
&
name,
std::
size_t
refs
=
0
)
;
|
(C++11以降) | |
指定されたロケール名
name
に対して新しい
std::messages_byname
ファセットを構築します。
refs はリソース管理に使用されます: refs == 0 の場合、実装はこのファセットを保持する最後の std::locale オブジェクトが破棄されるときにファセットを破棄します。それ以外の場合、オブジェクトは破棄されません。
パラメータ
| name | - | ロケールの名前 |
| refs | - | ファセットにリンクする参照数 |
std::messages_byname:: ~messages_byname
|
protected
:
~messages_byname ( ) ; |
||
ファセットを破棄します。
std:: messages から継承
ネストされた型
| 型 | 定義 |
char_type
|
CharT
|
string_type
|
std:: basic_string < CharT > |
データメンバ
| メンバ | 説明 |
std::locale::id
id
[static]
|
ファセット の識別子 |
メンバ関数
do_open
を呼び出す
(
std::messages<CharT>
のpublicメンバ関数)
|
|
do_get
を呼び出す
(
std::messages<CharT>
のpublicメンバ関数)
|
|
do_close
を呼び出す
(
std::messages<CharT>
のpublicメンバ関数)
|
保護メンバ関数
|
[virtual]
|
名前付きメッセージカタログを開く
(
std::messages<CharT>
の仮想protectedメンバ関数)
|
|
[virtual]
|
開いたメッセージカタログからメッセージを取得する
(
std::messages<CharT>
の仮想protectedメンバ関数)
|
|
[virtual]
|
メッセージカタログを閉じる
(
std::messages<CharT>
の仮想protectedメンバ関数)
|
例
#include <iostream> #include <locale> void try_with(const std::locale& loc) { const std::messages<char>& facet = std::use_facet<std::messages<char>>(loc); std::messages<char>::catalog cat = facet.open("sed", std::cout.getloc()); if (cat < 0) std::cout << "Could not open \"sed\" message catalog\n"; else std::cout << "\"No match\" " << facet.get(cat, 0, 0, "No match") << '\n' << "\"Memory exhausted\" " << facet.get(cat, 0, 0, "Memory exhausted") << '\n'; facet.close(cat); } int main() { std::locale loc("en_US.utf8"); std::cout.imbue(loc); try_with(std::locale(loc, new std::messages_byname<char>("de_DE.utf8"))); try_with(std::locale(loc, new std::messages_byname<char>("fr_FR.utf8"))); try_with(std::locale(loc, new std::messages_byname<char>("ja_JP.utf8"))); }
出力例:
"No match" Keine Übereinstimmung "Memory exhausted" Speicher erschöpft "No match" Pas de concordance "Memory exhausted" Mémoire épuisée "No match" 照合しません "Memory exhausted" メモリーが足りません
関連項目
|
メッセージカタログからの文字列取得を実装する
(クラステンプレート) |