| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 
 | #include <climits>
#include <type_traits>
#include <utility>
 
 
namespace detail {
    template <typename T, std::enable_if_t<std::is_integral_v<T>, T> Filler, T Prefix, std::size_t N, T ...Elements>
    struct repeat_seq {
        using type = typename repeat_seq<T, Filler, Prefix, N - 1, Filler, Elements...>::type;
    };
 
    template <typename T, std::enable_if_t<std::is_integral_v<T>, T> Filler, T Prefix, T ...Elements>
    struct repeat_seq<T, Filler, Prefix, std::size_t(0u), Elements...> {
        using type = std::integer_sequence<T, Prefix, Elements...>;
    };
}
 
template <int Prefix, int Filler, std::size_t N, int Suffix>
using gen_seq = typename detail::repeat_seq<int, Filler, Prefix, N, Suffix>::type;
 
 
static_assert(std::is_same_v<std::integer_sequence<int, INT_MIN, 42, 42, 42, 42, 42, INT_MAX>, gen_seq<INT_MIN, 42, 5, INT_MAX>>); | 
Partager