[PATCH][_Hashtable] Fix insertion of range of type convertible to value_type PR 105714
Jonathan Wakely
jwakely@redhat.com
Tue Jun 14 21:53:01 GMT 2022
On Wed, 25 May 2022 at 06:10, François Dumont <frs.dumont@gmail.com> wrote:
>
> Here is the patch to fix just what is described in PR 105714.
>
> libstdc++: [_Hashtable] Insert range of types convertible to
> value_type PR 105714
>
> Fix insertion of range of types convertible to value_type.
>
> libstdc++-v3/ChangeLog:
>
> PR libstdc++/105714
> * include/bits/hashtable_policy.h (_ValueTypeEnforcer): New.
> * include/bits/hashtable.h
> (_Hashtable<>::_M_insert_unique_aux): New.
> (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&,
> true_type)): Use latters.
> (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&,
> false_type)): Likewise.
> (_Hashtable(_InputIterator, _InputIterator, size_type,
> const _Hash&, const _Equal&,
> const allocator_type&, true_type)): Use this.insert range.
> (_Hashtable(_InputIterator, _InputIterator, size_type,
> const _Hash&, const _Equal&,
> const allocator_type&, false_type)): Use _M_insert.
> * testsuite/23_containers/unordered_map/cons/56112.cc:
> Check how many times conversion
> is done.
> * testsuite/23_containers/unordered_map/insert/105714.cc:
> New test.
> * testsuite/23_containers/unordered_set/insert/105714.cc:
> New test.
>
> Tested under Linux x64, ok to commit ?
I think "_ConvertToValueType" would be a better name than
_ValueTypeEnforcer, and all overloads of _ValueTypeEnforcer can be
const.
OK with that change, thanks.
More information about the Libstdc++
mailing list