[libcxx-commits] [libcxx] [libc++] Implement P2077R3: Heterogeneous erasure overloads for associative containers (PR #174680)
Nikolas Klauser via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Aug 14 05:24:22 PDT 2026
================
@@ -1332,6 +1344,18 @@ public:
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator erase(const_iterator __f, const_iterator __l) {
return __tree_.erase(__f.__i_, __l.__i_);
}
+
+# if _LIBCPP_STD_VER >= 23
+
+ template <class _Kp>
+ requires(__is_transparent_v<_Compare> && !is_convertible_v<_Kp &&, iterator> &&
+ !is_convertible_v<_Kp &&, const_iterator>)
----------------
philnik777 wrote:
```suggestion
requires(__is_transparent_v<_Compare> && !is_convertible_v<_Kp, iterator> &&
!is_convertible_v<_Kp, const_iterator>)
```
I don't think you need those.
More generally, I wonder whether we want to introduce an "is not convertible to iterators" concept. Not sure it's worth it.
https://github.com/llvm/llvm-project/pull/174680
More information about the libcxx-commits
mailing list