https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119545
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2025-03-30
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.
A few different ways of fixing this, one is to supply the trailing return type
for the lambda.
That is replace:
return [&]<size_t... _Inds>(index_sequence<_Inds...>) {
With:
return [&]<size_t... _Inds>(index_sequence<_Inds...>) -> bool {
Or replace:
return ((std::get<_Inds>(__t) == std::get<_Inds>(__u)) && ...);
with
return true && ((std::get<_Inds>(__t) == std::get<_Inds>(__u)) && ...);
or
return (bool) ((std::get<_Inds>(__t) == std::get<_Inds>(__u)) && ...);
Which forces to use the conversion to bool.
I will leave it up to the libstdc++ maintainers on how they will like to solve
it.