std::messages<CharT>:: get, std::messages<CharT>:: do_get
| Localization library | |||||||||||||||||||||||||
| Regular expressions library (C++11) | |||||||||||||||||||||||||
| Formatting library (C++20) | |||||||||||||||||||||||||
| Null-terminated sequence utilities | |||||||||||||||||||||||||
| Byte strings | |||||||||||||||||||||||||
| Multibyte strings | |||||||||||||||||||||||||
| Wide strings | |||||||||||||||||||||||||
| Primitive numeric conversions | |||||||||||||||||||||||||
|
|||||||||||||||||||||||||
| Text encoding identifications | |||||||||||||||||||||||||
|
|||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
messages::get
messages::do_get
|
||||
|
定義済みヘッダー
<locale>
|
||
|
public
:
string_type get ( catalog cat, int set, int msgid, const string_type & dfault ) const ; |
(1) | |
|
protected
:
virtual string_type do_get ( catalog cat, int set, int msgid, const string_type & dfault ) const ; |
(2) | |
do_get
を呼び出す。
目次 |
パラメータ
| cat | - | open() から取得され、まだ close() に渡されていないメッセージカタログの識別子 |
| set | - | 実装定義の引数、POSIXにおけるメッセージセット |
| msgid | - | 実装定義の引数、POSIXにおけるメッセージID |
| dfault | - | カタログ内で検索する文字列(カタログが文字列検索を使用する場合)および失敗時の戻り値となる文字列 |
戻り値
カタログからのメッセージ、または見つからなかった場合は dfault のコピー。
注記
POSIXシステムでは、この関数呼び出しは通常
catgets()
の呼び出しに変換され、パラメータ
set
、
msgid
、および
dfault
はそのまま
catgets()
に渡されます。GNU libstdc++では、この関数は
set
と
msgid
を無視し、必要なロケールで単純にGNU
gettext
(
dfault
)
を呼び出します。
例
以下の例はメッセージの取得を示しています:典型的なGNU/Linuxシステムでは、
/usr/share/locale/de/LC_MESSAGES/sed.mo
から読み取ります。
#include <iostream> #include <locale> int main() { std::locale loc("de_DE.utf8"); std::cout.imbue(loc); auto& facet = std::use_facet<std::messages<char>>(loc); auto cat = facet.open("sed", loc); if (cat < 0) std::cout << "Could not open german \"sed\" message catalog\n"; else std::cout << "\"No match\" in German: " << facet.get(cat, 0, 0, "No match") << '\n' << "\"Memory exhausted\" in German: " << facet.get(cat, 0, 0, "Memory exhausted") << '\n'; facet.close(cat); }
出力例:
"No match" in German: Keine Übereinstimmung "Memory exhausted" in German: Speicher erschöpft