std::hash <std::variant>
提供: cppreference.com
ヘッダ <variant> で定義 | ||
template<class... Types> struct hash<std::variant<Types...>>; | (C++17以上) | |
テンプレート std::hash の std::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> の区別を可能とします。
[編集]例
This section is incomplete Reason: no example |
[編集]関連項目
(C++11) | ハッシュ関数オブジェクト (クラステンプレート) |