| 777 | |
| 778 | template <int N, class T, class X> |
| 779 | CUTE_HOST_DEVICE constexpr |
| 780 | auto |
| 781 | append(T const& a, X const& x) |
| 782 | { |
| 783 | if constexpr (is_tuple<T>::value) { |
| 784 | if constexpr (N == tuple_size<T>::value) { |
| 785 | return a; |
| 786 | } else { |
| 787 | static_assert(N > tuple_size<T>::value); |
| 788 | return detail::construct(a, x, make_seq<tuple_size<T>::value>{}, make_seq<N-tuple_size<T>::value>{}, seq<>{}); |
| 789 | } |
| 790 | } else { |
| 791 | if constexpr (N == 1) { |
| 792 | return a; |
| 793 | } else { |
| 794 | return detail::construct(cute::make_tuple(a), x, seq<0>{}, make_seq<N-1>{}, seq<>{}); |
| 795 | } |
| 796 | } |
| 797 | |
| 798 | CUTE_GCC_UNREACHABLE; |
| 799 | } |
| 800 | |
| 801 | template <class T, class X> |
| 802 | CUTE_HOST_DEVICE constexpr |
no test coverage detected