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

Reply via email to