名前空間
変種
操作

std::hash <std::variant>

提供: cppreference.com
< cpp‎ | utility‎ | variant
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ(C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
 
ヘッダ <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]
close