https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96499
Bug ID: 96499 Summary: Compare std::variant with int using C++20 <=> occurs internal compiler error Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: hewillk at gmail dot com Target Milestone: --- #include <variant> constexpr auto operator<=>(const auto& v, const auto& u) { return std::visit([&u](const auto& t) { return t <=> u; }, v); } constexpr std::variant<double, int> v{1}; static_assert(v < 2); This will occurs internal compiler error for gcc-trunk. godbolt link: https://godbolt.org/z/EcGKc3