最終更新日時:
が更新

履歴 編集

class
<locale>

std::messages_base

namespace std {
  class messages_base;
}

概要

messages_baseは、メッセージカタログを識別するための型を定義する基底クラスである。

messagesはこのクラスを継承しており、messages::open()が返し、messages::get()messages::close()が受け取る値の型がcatalogである。

メンバ型

名前 説明
catalog 翻訳カタログ型
・C++98 : int
・C++14 : 未規定の符号付き整数型

#include <iostream>
#include <locale>

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

  // open()の戻り値の型がmessages_base::catalogである
  std::messages_base::catalog cat = msgs.open("nonexistent_catalog", loc);

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

  std::cout << "done" << std::endl;
}

出力

done

バージョン

言語

  • C++98

関連項目

参照

  • LWG Issue 2028. messages_base::catalog overspecified
    • C++14で、catalogの型がintから未規定の符号付き整数型に変更された。POSIXのメッセージカタログAPIが使用するnl_catd未規定の型であり(macOSではvoid*)、intに固定すると処理系がOSの提供するメッセージカタログ機能をそのまま利用できなかったため