gcc/libstdc++-v3/include
Jonathan Wakely 73676cfb20
libstdc++: Refactor Hashtable erasure
This reworks the internal member functions for erasure from
unordered containers, similarly to the earlier commit doing it for
insertion.

Instead of multiple overloads of _M_erase which are selected via tag
dispatching, the erase(const key_type&) member can use 'if constexpr' to
choose an appropriate implementation (returning after erasing a single
element for unique keys, or continuing to erase all equivalent elements
for non-unique keys).

libstdc++-v3/ChangeLog:

	* include/bits/hashtable.h (_Hashtable::_M_erase): Remove
	overloads for erasing by key, moving logic to ...
	(_Hashtable::erase): ... here.

Reviewed-by: François Dumont <fdumont@gcc.gnu.org>
2024-11-13 20:21:39 +00:00
..
backward non-gcc: Remove trailing whitespace 2024-10-25 10:03:17 +02:00
bits libstdc++: Refactor Hashtable erasure 2024-11-13 20:21:39 +00:00
c libstdc++: #ifdef out #pragma GCC system_header 2024-09-25 08:20:45 -04:00
c_compatibility libstdc++: Deprecate useless <cxxx> compatibility headers for C++17 2024-11-06 12:47:19 +00:00
c_global libstdc++: Deprecate useless <cxxx> compatibility headers for C++17 2024-11-06 12:47:19 +00:00
c_std libstdc++: Deprecate useless <cxxx> compatibility headers for C++17 2024-11-06 12:47:19 +00:00
debug libstdc++: Do not define _Insert_base::try_emplace before C++17 2024-11-08 14:39:56 +00:00
decimal libstdc++: #ifdef out #pragma GCC system_header 2024-09-25 08:20:45 -04:00
experimental libstdc++: Refactor experimental::filesystem::path string conversions 2024-09-27 23:55:09 +01:00
ext non-gcc: Remove trailing whitespace 2024-10-25 10:03:17 +02:00
parallel non-gcc: Remove trailing whitespace 2024-10-25 10:03:17 +02:00
precompiled libstdc++: Deprecate useless <cxxx> compatibility headers for C++17 2024-11-06 12:47:19 +00:00
pstl libgcc, libstdc++: Make declarations no longer TU-local [PR115126] 2024-09-27 09:16:53 +10:00
std libstdc++: Fix typos in iterator increment for std::text_encoding [PR117520] 2024-11-11 18:57:16 +00:00
tr1 non-gcc: Remove trailing whitespace 2024-10-25 10:03:17 +02:00
tr2 libstdc++: #ifdef out #pragma GCC system_header 2024-09-25 08:20:45 -04:00
Makefile.am
Makefile.in