std::hash <std::experimental::optional>
From cppreference.com
< cpp | experimental | optional
C++
Experimental
| Technical Specification | ||||
| Filesystem library (filesystem TS) | ||||
| Library fundamentals (library fundamentals TS) | ||||
| Library fundamentals 2 (library fundamentals TS v2) | ||||
| Library fundamentals 3 (library fundamentals TS v3) | ||||
| Extensions for parallelism (parallelism TS) | ||||
| Extensions for parallelism 2 (parallelism TS v2) | ||||
| Extensions for concurrency (concurrency TS) | ||||
| Extensions for concurrency 2 (concurrency TS v2) | ||||
| Concepts (concepts TS) | ||||
| Ranges (ranges TS) | ||||
| Reflection (reflection TS) | ||||
| Mathematical special functions (special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
Library fundamentals
std::experimental::optional
| Member functions | ||||
| Observers | ||||
| Modifiers | ||||
| Non-member functions | ||||
| Helper classes | ||||
hash | ||||
| Helper objects | ||||
| Defined in header <experimental/optional>
|
||
| template< class T > struct hash<std::experimental::optional<T>>; |
(library fundamentals TS) | |
The template specialization of std::hash for the std::experimental::optional class allows users to obtain hashes of the values contained in optional objects.
[edit] Template parameters
| T | - | the type of the value contained in optional object. The specialization std::hash<T> must meet the requirements of class template hash.
|
[edit] Example
Run this code
#include <experimental/optional> #include <iostream> #include <string> #include <unordered_set> using namespace std::literals; int main() { / hash<optional> makes it possible to use unordered_set std::unordered_set<std::experimental::optional<std::string>> s = { "abc"s, std::experimental::nullopt, "def"s }; for (const auto& o : s) std::cout << o.value_or("(null)") << ' '; std::cout << '\n'; }
Possible output:
def abc (null)
[edit] See also
| (C++11) |
hash function object (class template) [edit] |