[cfe-dev] [libc++] Should std::max allow types that require explicit bool conversion?
Tim Northover via cfe-dev
cfe-dev at lists.llvm.org
Thu Jul 5 11:39:46 PDT 2018
Hi Jö,
On Thu, 5 Jul 2018 at 19:23, Jö Fahlke via cfe-dev
<cfe-dev at lists.llvm.org> wrote:
> I was surprised to find that I cannot use libc++'s `std::max(a, b)` if `a<b`
> yields an object with an explicit operator bool. Is that intended, or should
> I file a bug?
std::max is defined to work on types that are "LessThanComparable",
which in turn requires the result of "a < b" to be *implicitly*
convertible to bool
(https://en.cppreference.com/w/cpp/named_req/LessThanComparable). An
"explicit operator bool" (fairly unsurprisingly) doesn't qualify.
Cheers.
Tim.
More information about the cfe-dev
mailing list