#include template struct Pack { }; /* Implement Reverse here */ int main() { { using Input = Pack<>; using Output = Pack<>; using Result = typename Reverse::type; static_assert( std::is_same_v ); } { using Input = Pack; using Output = Pack; using Result = typename Reverse::type; static_assert( std::is_same_v ); } { using Input = Pack; using Output = Pack; using Result = typename Reverse::type; static_assert( std::is_same_v ); } { using Input = Pack; using Output = Pack; using Result = typename Reverse::type; static_assert( std::is_same_v ); } }