6 #ifndef SWIFT_MISC_INTEGERSEQUENCE_H
7 #define SWIFT_MISC_INTEGERSEQUENCE_H
11 namespace swift::misc::private_ns
16 template <
typename,
typename T,
bool...>
17 struct MaskSequenceImpl
22 template <
size_t I,
size_t... Is,
bool... Mask,
size_t... Js>
23 struct MaskSequenceImpl<std::index_sequence<I, Is...>, std::index_sequence<Js...>, true, Mask...>
26 typename MaskSequenceImpl<std::index_sequence<Is...>, std::index_sequence<Js..., I>, Mask...>::type;
29 template <
size_t I,
size_t... Is,
bool... Mask,
size_t... Js>
30 struct MaskSequenceImpl<std::index_sequence<I, Is...>, std::index_sequence<Js...>, false, Mask...>
32 using type =
typename MaskSequenceImpl<std::index_sequence<Is...>, std::index_sequence<Js...>, Mask...>::type;
35 template <
typename Seq,
bool... Mask>
36 using MaskSequence =
typename MaskSequenceImpl<Seq, std::index_sequence<>, Mask...>::type;