On 21/03/2014 23:59, Jonathan Wakely wrote:
On 21/03/14 22:39 +0100, François Dumont wrote:
Hi
Here is a patch to fix _Hashtable Standard extension type which is
almost unusable at the moment if instantiated with anything else that
the types used for the std unordered containers that is to say
__detail::_Default_ranged_hash and __detail::_Mod_range_hashing.
Good catch.
Also, it seems that this specialization is missing the "hasher"
typedef:
/// Specialization: ranged hash function, no caching hash codes. H1
/// and H2 are provided but ignored. We define a dummy hash code type.
template<typename _Key, typename _Value, typename _ExtractKey,
typename _H1, typename _H2, typename _Hash>
struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash,
false>
: private _Hashtable_ebo_helper<0, _ExtractKey>,
private _Hashtable_ebo_helper<1, _Hash>
{
From the comments I think it is intentional, is that right?
It seems intentional to me too even if I haven't written this code. In
this case the user is supposed to provide a functor that gives the
bucket index directly from the key so no real hasher even if there might
be one in this functor.
Patch committed.
François