C++ named requirements: Hash (since C++11)
A Hash is a function object for which the output depends only on the input and has a very low probability of yielding the same output given different input values.
T satisfies Hash if
- The type
Tsatisfies FunctionObject, CopyConstructible, Destructible, and
h, a value of type
const T, whose argument type is
k, a value of type convertible to
u, an lvalue expression of type
The following expressions must be valid and have their specified effects
|| the returned value depends only on the value of |
All evaluations of h(k) executed within a given execution of a program yield the same result for the same value of
The probability of h(a)==h(b) for a!=b should approach 1.0/std::numeric_limits<std::size_t>::max().
 Standard library
| hash function object |
 Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
|DR||Applied to||Behavior as published||Correct behavior|
|LWG 2291||C++11||same results for same arguments were required in all cases||only required within a single execution|