On Thu, 23 Nov 2023 at 21:59, François Dumont <frs.dum...@gmail.com> wrote: > > libstdc++: [_Hashtable] Avoid redundant usage of rehash policy > > Bypass call to __detail::__distance_fwd and the check if rehash is > needed when > assigning an initializer_list to an unordered_multimap or > unordered_multiset.
I find this patch and the description a bit confusing. It would help if the new _Hashtable::_M_insert_range function had a comment (or a different name!) explaining how it's different from the existing _Insert_base::_M_insert_range functions. > > libstdc++-v3/ChangeLog: > > * include/bits/hashtable.h > (_Hashtable<>::_M_insert_range(_InputIte, _InputIte, > _NodeGen&)): New. > (_Hashtable<>::operator=(initializer_list<value_type>)): Use latter. > (_Hashtable<>::_Hashtable(_InputIte, _InputIte, size_type, > const _Hash&, const _Equal&, > const allocator_type&, false_type)): Use latter. > * include/bits/hashtable_policy.h > (_Insert_base<>::_M_insert_range(_InputIte, _InputIte, > true_type)): Use latter. > (_Insert_base<>::_M_insert_range(_InputIte, _InputIte, > false_type)): Likewise. > > Tested under Linux x64 > > Ok to commit ? > > François