#include <iostream>
template <typename T, std::size_t N>
void Function(const T (&a)[N])
{
std::cout << "{";
const char* sep = "";
for (const auto& e : a) {
std::cout << sep << e;
sep = ", ";
}
std::cout << "}\n";
}
template <typename T, typename... Ts>
void Function(const T& t, const Ts&... args)
{
Function(t);
Function(args...);
}
int main()
{
int P1[] = {0, 1, 2, 3, 4};
const char* P2[] = {"Hello", "World"};
// ...
char Pn[] = {'0', '1', 'A', 'Z'};
Function(P1, P2, Pn);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IE4+CnZvaWQgRnVuY3Rpb24oY29uc3QgVCAoJmEpW05dKQp7CiAgICBzdGQ6OmNvdXQgPDwgInsiOwogICAgY29uc3QgY2hhciogc2VwID0gIiI7CiAgICBmb3IgKGNvbnN0IGF1dG8mIGUgOiBhKSB7CiAgICAgICAgc3RkOjpjb3V0IDw8IHNlcCA8PCBlOwogICAgICAgIHNlcCA9ICIsICI7CiAgICB9CiAgICBzdGQ6OmNvdXQgPDwgIn1cbiI7Cn0KCnRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBUcz4Kdm9pZCBGdW5jdGlvbihjb25zdCBUJiB0LCBjb25zdCBUcyYuLi4gYXJncykKewogICAgRnVuY3Rpb24odCk7CiAgICBGdW5jdGlvbihhcmdzLi4uKTsKfQoKaW50IG1haW4oKQp7CiAgICBpbnQgUDFbXSA9IHswLCAxLCAyLCAzLCA0fTsKICAgIGNvbnN0IGNoYXIqIFAyW10gPSB7IkhlbGxvIiwgIldvcmxkIn07CiAgICAvLyAuLi4KICAgIGNoYXIgUG5bXSA9IHsnMCcsICcxJywgJ0EnLCAnWid9OwoKICAgIEZ1bmN0aW9uKFAxLCBQMiwgUG4pOwp9Cg==
{0, 1, 2, 3, 4}
{Hello, World}
{0, 1, A, Z}