最終更新日時:
が更新

履歴 編集

class template
<variant>

std::hash(C++17)

namespace std {
  template <>
  struct hash<monostate>;
}

概要

std::hashクラスの、std::monostateに対する特殊化。

この特殊化は有効化されているため、std::monostatestd::unordered_setstd::unordered_mapのキーとして使用できる。

効果

std::monostateオブジェクトは唯一の状態のみを持ち、常に等値であるため、ハッシュ値も常に同じ値となる。その値は未規定である。

備考

  • この特殊化は、以下のヘッダが読み込まれている場合に使用できる:

#include <cassert>
#include <functional>
#include <variant>

int main()
{
  std::monostate a{};
  std::monostate b{};

  // 常に同じハッシュ値となる
  assert(std::hash<std::monostate>{}(a) == std::hash<std::monostate>{}(b));
}

出力

バージョン

言語

  • C++17

処理系

関連項目

参照