https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93147

--- Comment #3 from Marc Glisse <glisse at gcc dot gnu.org> ---
(In reply to Alexander Kondratskiy from comment #0)
> My suspicion is that tuple indirectly inherits the types `A` and `B`, and
> even though it may be private inheritance, the compiler still finds both
> comparison operators and considers them ambiguous. GCC tries to implicitly
> convert `std::tuple<A, B>` into `A` and `B` to call `operator ==`.

Yes, there were plans to use [[unique_address]] instead, but either noone had
time to implement it, or they found an issue with this plan.
The difference of behavior with clang seems worth investigating though.

Reply via email to