Avoid comparing elements with operator== multiple times by replacing uses of find and equal_range with equivalent inlined code that uses operator== instead of the container's equality comparison predicate. This is valid because the standard requires that operator== is a refinement of the equality predicate. Also replace the _S_is_permutation function with std::is_permutation, which wasn't yet implemented when this code was first written. PR libstdc++/91263 * include/bits/hashtable.h (_Hashtable<>): Make _Equality<> friend. * include/bits/hashtable_policy.h: Include <bits/stl_algo.h>. (_Equality_base): Remove. (_Equality<>::_M_equal): Review implementation. Use std::is_permutation. * testsuite/23_containers/unordered_multiset/operators/1.cc (Hash, Equal, test02, test03): New. * testsuite/23_containers/unordered_set/operators/1.cc (Hash, Equal, test02, test03): New.
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
17_intro | Loading commit data... | |
18_support | Loading commit data... | |
19_diagnostics | Loading commit data... | |
20_util | Loading commit data... | |
21_strings | Loading commit data... | |
22_locale | Loading commit data... | |
23_containers | Loading commit data... | |
24_iterators | Loading commit data... | |
25_algorithms | Loading commit data... | |
26_numerics | Loading commit data... | |
27_io | Loading commit data... | |
28_regex | Loading commit data... | |
29_atomics | Loading commit data... | |
30_threads | Loading commit data... | |
abi | Loading commit data... | |
backward | Loading commit data... | |
config | Loading commit data... | |
data | Loading commit data... | |
decimal | Loading commit data... | |
experimental | Loading commit data... | |
ext | Loading commit data... | |
lib | Loading commit data... | |
libstdc++-abi | Loading commit data... | |
libstdc++-dg | Loading commit data... | |
libstdc++-prettyprinters | Loading commit data... | |
libstdc++-xmethods | Loading commit data... | |
performance | Loading commit data... | |
special_functions | Loading commit data... | |
std | Loading commit data... | |
tr1 | Loading commit data... | |
tr2 | Loading commit data... | |
util | Loading commit data... | |
Makefile.am | Loading commit data... | |
Makefile.in | Loading commit data... |