名前空間
変種
操作

std::hash <std::variant>

提供: cppreference.com
< cpp‎ | utility‎ | variant
 
 
 
 
ヘッダ <variant> で定義
template <class... Types>
struct hash<std::variant<Types...>>;
(C++17以上)

テンプレート std::hashstd::variant テンプレートに対する特殊化は、ユーザが variant オブジェクトのハッシュを取得できるようにします。

特殊化 std::hash<std::variant<Types...>> は、 std::hash<std::remove_const_t<Types>>... のすべての特殊化が有効化 (std::hash を参照) されていれば有効化され、そうでなければ無効化されます。

この特殊化のメンバ関数は noexcept であることが保証されません。

目次

[編集] テンプレート引数

Types - variant オブジェクトによってサポートされる選択肢の型

[編集] ノート

std::hash<std::optional> と異なり、一般的に variant のハッシュは格納されている値のハッシュと等しくありません。 これは異なる選択肢として同じ値を保持する std::variant<int, int> の区別を可能とします。

[編集]

[編集] 関連項目

(C++11)
ハッシュ関数オブジェクト
(クラステンプレート) [edit]