https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93770
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |redi at gcc dot gnu.org --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- If we structure it like this we can avoid instantiating the redundant expressions: static constexpr bool __less(const _Tp& __t, const _Up& __u) { if (std::get<__i>(__t) < std::get<__i>(__u)) return true; if _GLIBCXX17_CONSTEXPR ((__i + 1) < __size) { return !bool(std::get<__i>(__u) < std::get<__i>(__t)) && __tuple_compare<_Tp, _Up, __i + 1, __size>::__less(__t, __u); } return false; }