https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83709
--- Comment #2 from François Dumont <fdumont at gcc dot gnu.org> --- Author: fdumont Date: Tue Jan 9 21:05:10 2018 New Revision: 256396 URL: https://gcc.gnu.org/viewcvs?rev=256396&root=gcc&view=rev Log: 2018-01-09 François Dumont <fdum...@gcc.gnu.org> PR libstdc++/83709 * include/bits/hashtable_policy.h (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if __first != __last. (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New. (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)): Add false_type parameter. (_Insert_base::insert): Adapt. * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)): Adapt. (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)): Add __n_elt parameter, defaulted to 1. (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash policy _M_need_rehash. (_Hashtable::_M_merge_unique): Pass target number of elements to add to produce only 1 rehash if necessary. * testsuite/23_containers/unordered_map/insert/83709.cc: New. * testsuite/23_containers/unordered_set/insert/83709.cc: New. Added: trunk/libstdc++-v3/testsuite/23_containers/unordered_map/insert/83709.cc trunk/libstdc++-v3/testsuite/23_containers/unordered_set/insert/83709.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/bits/hashtable.h trunk/libstdc++-v3/include/bits/hashtable_policy.h