GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::hash(3) C++ Standard Libary std::hash(3)

std::hash - std::hash


Defined in header <variant>
template <class... Types> (since C++17)
struct hash<std::variant<Types...>>;


The template specialization of std::hash for the std::variant template allows users
to obtain hashes of variant objects.


The specialization std::hash<std::variant<Types...>> is enabled (see std::hash) if
every specialization in std::hash<std::remove_const_t<Types>>... is enabled, and is
disabled otherwise.


The member functions of this specialization are not guaranteed to be noexcept.


Types - the types of the alternatives supported by the variant object


Unlike std::hash<std::optional>, hash of a variant does not typically equal the hash
of the contained value; this makes it possible to distinguish std::variant<int, int>
holding the same value as different alternatives.

// Run this code


#include <variant>
#include <iostream>
#include <string>


using Var = std::variant<int, int, int, std::string>;


template<unsigned I>
void print(Var const& var) {
std::cout << "get<" << var.index() << "> = "
<< std::get<I>(var)
<< "\t" "# = "
<< std::hash<Var>{}(var) << '\n';
}


int main()
{
Var var;
std::get<0>(var) = 2020;
print<0>(var);
var.emplace<1>(2023);
print<1>(var);
var.emplace<2>(2026);
print<2>(var);
var = "C++";
print<3>(var);
}


get<0> = 2020 # = 2020
get<1> = 2023 # = 2024
get<2> = 2026 # = 2028
get<3> = C++ # = 15518724754199266859


hash hash function object
(C++11) (class template)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.