On 11/17/19 11:21 PM, Ville Voutilainen wrote:
On Sun, 17 Nov 2019 at 23:15, François Dumont <frs.dum...@gmail.com> wrote:
H1 used to be a reference to the user Hash, now _Hashtable and unordered
types agree on the same Hash type which is more intuitive.
I also chose to not support anymore a stateful ranged hash functor. We
only use _Mod_range_hashing and _Mask_range_hashing.
Thanks to this simplification _M_bucket_index can also be simplified.
Do we know whether there are existing users that this breaks?
That's the problem with this kind of extension, we don't know.
However we never get any report neither about potential users. And I
remember that I fixed some years ago a bug that users would have
reported much sooner if there have been users. But it was some years ago.
Also, is
this ABI-compatible
for our unordered containers?
IMHO, yes it is.
In hashtable_policy.h _H1 was the user hash which I renamed in _Hash,
the same template name that for unordered containers.
_H2 was always _Mod_range_hashing and previous _Hash always
_Default_ranged_hash, both stateless types. Only _H1 and _H2 were stored
in _Hash_code_base for instance. _H1 is still as _Hash and _H2 was just
empty and moreover stored last so removing it has no impact.
François