On Mon, 18 Nov 2019 at 23:41, François Dumont <frs.dum...@gmail.com> wrote: > > 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.
Right, and as I understood the code, it's all empty base objects anyway, so it boils down to whether a set of empty bases can change without causing an ABI break, and I don't think there's an ABI problem here because the actual _Hashtable is stored as a member of various containers, and its size doesn't change, and based on what you wrote, with which my code-reading agrees, the behaviour doesn't change either. So the patch seems okay to me.