https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65641

--- Comment #4 from Marc Glisse <glisse at gcc dot gnu.org> ---
Currently, the only implemented policy uses primes from a hard-coded list for
the number of buckets. This makes it easy to precompute (and hard-code in the
library) anything that may be helpful to speed-up modulo computation. With a
number of buckets that is a power of 2, modulo computation becomes trivial
(masking). However, the simplistic specialization of std::hash for pointers in
libstdc++ means that all double* hash to a multiple of 8. So we would need to
add some scrambling somewhere to avoid leaving most buckets empty in
unordered_set<double*>.

Reply via email to