libstdc++: Update guards on __heterogeneous_hash_key and __heterogeneous_tree_key

The r16-7359-gae04c1afd1526a changed __heterogeneous_key to be
defined if __glibcxx_associative_heterogeneous_erasure, but missed
guards on derived __heterogeneous_hash_key and __heterogeneous_tree_key
concept.

libstdc++-v3/ChangeLog:

	* include/bits/hashtable.h (std::__heterogeneous_hash_key)
	[__glibcxx_associative_heterogeneous_erasure]: Changed guard.
	* include/bits/stl_tree.h (std::__heterogeneous_tree_key)
	[__glibcxx_associative_heterogeneous_erasure]: Likewise.
	* include/bits/stl_function.h: Add comment with C++ version
	for __glibcxx_associative_heterogeneous_erasure guard.
This commit is contained in:
Tomasz Kamiński
2026-02-06 12:03:37 +01:00
parent c73831b61b
commit 9b85fcc00e
3 changed files with 3 additions and 3 deletions

View File

@@ -3012,7 +3012,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
= __enable_if_t<!__or_<is_integral<_Hash>, __is_allocator<_Hash>>::value>;
#endif
#ifdef __cpp_concepts
#ifdef __glibcxx_associative_heterogeneous_erasure // C++ >= 23
template <typename _Kt, typename _Container>
concept __heterogeneous_hash_key =
__transparent_comparator<typename _Container::hasher> &&

View File

@@ -1525,7 +1525,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif
#endif
#ifdef __glibcxx_associative_heterogeneous_erasure
#ifdef __glibcxx_associative_heterogeneous_erasure // C++ >= 23
template <typename _Kt, typename _Container>
concept __not_container_iterator =
(!is_convertible_v<_Kt&&, typename _Container::iterator> &&

View File

@@ -3315,7 +3315,7 @@ namespace __rb_tree
};
#endif // C++17
#ifdef __cpp_concepts
#ifdef __glibcxx_associative_heterogeneous_erasure // C++ >= 23
template <typename _Kt, typename _Container>
concept __heterogeneous_tree_key =
__transparent_comparator<typename _Container::key_compare> &&