std::hash<std::experimental::optional> (3) - Linux Manuals
std::hash<std::experimental::optional>: std::hash<std::experimental::optional>
Command to display std::hash<std::experimental::optional>
manual in Linux: $ man 3 std::hash<std::experimental::optional>
NAME
std::hash<std::experimental::optional> - std::hash<std::experimental::optional>
Synopsis
Defined in header <experimental/optional>
template<class T> (library fundamentals TS)
struct hash<std::experimental::optional<T>>;
The template specialization of std::hash for the std::experimental::optional class allows users to obtain hashes of the values contained in optional objects.
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.
Example
// Run this code
#include <experimental/optional>
#include <unordered_set>
#include <string>
#include <iostream>
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)") << ' ';
}
Possible output:
def abc (null)
See also
hash hash function object
(class template)
(C++11)
Pages related to std::hash<std::experimental::optional>
- std::hash<std::error_code> (3) - std::hash<std::error_code>
- std::hash<std::error_condition> (3) - std::hash<std::error_condition>
- std::hash<std::optional> (3) - std::hash<std::optional>
- std::hash<std::thread::id> (3) - std::hash<std::thread::id>
- std::hash<std::type_index> (3) - std::hash<std::type_index>
- std::hash<std::unique_ptr> (3) - std::hash<std::unique_ptr>
- std::hash<std::variant> (3) - std::hash<std::variant>
- std::hash(std::bitset) (3) - std::hash(std::bitset)
- std::hash(std::experimental::observer_ptr) (3) - std::hash(std::experimental::observer_ptr)
- std::hash(std::experimental::propagate_const) (3) - std::hash(std::experimental::propagate_const)
- std::hash(std::experimental::shared_ptr) (3) - std::hash(std::experimental::shared_ptr)
- std::hash(std::experimental::string_view,std::experimental::wstring_view, (3) - std::hash(std::experimental::string_view,std::experimental::wstring_view,
- std::hash(std::experimental::string_view,std::experimental::wstring_view,std::experimental::u16string_view,std::experimental::u32string_view) (3) - std::hash(std::experimental::string_view,std::experimental::wstring_view,std::experimental::u16string_view,std::experimental::u32string_view)