uploaded current status

This commit is contained in:
joaquintides committed 2022-10-30 19:16:43 +01:00
1 parent 90f2f0f67d
commit 2068cf8d5b
7 files changed
+196 -43

No files matched your search

+6 -6
View File
@@ -29,14 +29,14 @@ struct hash_is_avalanching;
A hash function is said to have the _avalanching property_ if small changes in the input translate to
large changes in the returned hash code —ideally, flipping one bit in the representation of
the input value results in each bit of the hash code flipping with probability 50%. This property is
critical for the proper behavior of open-addressing hash containers.
the input value results in each bit of the hash code flipping with probability 50%. Approaching
this property is critical for the proper behavior of open-addressing hash containers.
`hash_is_avalanching<Hash>` derives from `std::true_type` if `Hash::is_avalanching` is a valid type,
and derives from `std::false_type` otherwise.
`hash_is_avalanching<Hash>::value` is `true` if `Hash::is_avalanching` is a valid type,
and `false` otherwise.
Users can then declare a hash function `Hash` as avalanching either by embedding an `is_avalanching` typedef
into the definition of `Hash`, or directly by specializing `hash_is_avalanching<Hash>` to derive from
`std::true_type`.
into the definition of `Hash`, or directly by specializing `hash_is_avalanching<Hash>` to a class with
an embedded compile-time constant `value` set to `true`.
xref:unordered_flat_set[`boost::unordered_flat_set`] and xref:unordered_flat_map[`boost::unordered_flat_map`]
use the provided hash function `Hash` as-is if `hash_is_avalanching<Hash>::value` is `true`; otherwise, they