[libcxx-commits] [libcxx] [libc++] Make sure `flat_{multi}map::key_compare` handle `boolean-testable` correctly (PR #132621)
A. Jiang via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Nov 23 18:44:18 PST 2025
================
@@ -846,7 +846,7 @@ class flat_map {
__compare_(std::forward<_CompArg>(__comp)...) {}
_LIBCPP_HIDE_FROM_ABI bool __is_sorted_and_unique(auto&& __key_container) const {
- auto __greater_or_equal_to = [this](const auto& __x, const auto& __y) { return !__compare_(__x, __y); };
+ auto __greater_or_equal_to = [this](const auto& __x, const auto& __y) -> bool { return !__compare_(__x, __y); };
----------------
frederick-vs-ja wrote:
I recalled that the current standard wording doesn't actually require the result type of `Predicate` of `erase_if` for `flat_meow` to model _`boolean-testable`_. The boolean-testablity requirements seem only imposed for `erase_if` for sequence containers.
For `flat_meow`, the current wording uses explicit cast to `bool`. So should we use `bool(__compare_(...))` instead, or open an LWG issue for this?
https://github.com/llvm/llvm-project/pull/132621
More information about the libcxx-commits
mailing list