<type_traits>
std::integral_constant
<utility>
This is needed to not rely on implementation defined behavior regarding transitive header includes, here for std::integer_sequence.