最終更新日時:
が更新

履歴 編集

function
<locale>

std::messages::open

catalog open(const string& name, const locale& loc) const; // (1) C++98

概要

メッセージカタログを開く。

戻り値

do_open(name, loc)

備考

get()close()の実引数として使用できるcatalog型の値は、このメンバ関数を呼び出すことによってのみ取得できる。

メッセージカタログの形式と探索方法は処理系定義である。以下は、POSIXのcatgets形式のカタログを使用する処理系での例である。

メッセージのソースファイルhello.msgを、

$set 1
1 Hello, world!
2 Goodbye

POSIXのgencatコマンドでカタログファイルhello.catへ変換したものが存在するとする。

gencat hello.cat hello.msg

#include <iostream>
#include <locale>

int main()
{
  std::locale loc = std::locale::classic();
  const auto& msgs = std::use_facet<std::messages<char>>(loc);

  // カタログを開く
  std::messages_base::catalog cat = msgs.open("./hello.cat", loc);

  // 開けた場合、0以上の値が返る
  std::cout << std::boolalpha << (cat >= 0) << std::endl;

  if (cat >= 0) {
    msgs.close(cat);
  }
}

出力例

true

  • カタログを用意していない場合や、カタログ機構を持たない処理系では異なる結果となる。詳細はmessagesクラスのページを参照

バージョン

言語

  • C++98

関連項目