| 753 | |
| 754 | template <size_t I, class TupleA, class TupleB> |
| 755 | CUTE_HOST_DEVICE constexpr |
| 756 | auto |
| 757 | lex_less_impl(TupleA const& a, TupleB const& b) |
| 758 | { |
| 759 | if constexpr (I == tuple_size<TupleB>::value) { |
| 760 | return cute::false_type{}; // Terminal: TupleB is exhausted |
| 761 | } else if constexpr (I == tuple_size<TupleA>::value) { |
| 762 | return cute::true_type{}; // Terminal: TupleA is exhausted, TupleB is not exhausted |
| 763 | } else { |
| 764 | return lex_less(get<I>(a), get<I>(b)) || (get<I>(a) == get<I>(b) && lex_less_impl<I+1>(a,b)); |
| 765 | } |
| 766 | |
| 767 | CUTE_GCC_UNREACHABLE; |
| 768 | } |
| 769 | |
| 770 | template <size_t I, class TupleA, class TupleB> |
| 771 | CUTE_HOST_DEVICE constexpr |
nothing calls this directly
no test coverage detected