#include <iostream>
#include <sstream>
template<typename T>
void call(T& array, std::ostream& o)
{
static auto it = std::begin(array);
if(it != std::end(array)) {
o << *it;
++it;
call(array, o);
}
}
int main()
{
std::stringstream s;
int a[] = { 1, 2, 3, 4, 5, 6 };
call(a, s);
std::cout << s.str();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnZvaWQgY2FsbChUJiBhcnJheSwgc3RkOjpvc3RyZWFtJiBvKQp7CglzdGF0aWMgYXV0byBpdCA9IHN0ZDo6YmVnaW4oYXJyYXkpOwoJaWYoaXQgIT0gc3RkOjplbmQoYXJyYXkpKSB7CgkJbyA8PCAqaXQ7CgkJKytpdDsKCQljYWxsKGFycmF5LCBvKTsKCX0KfQoKaW50IG1haW4oKQp7CglzdGQ6OnN0cmluZ3N0cmVhbSBzOwoJaW50IGFbXSA9IHsgMSwgMiwgMywgNCwgNSwgNiB9OwoJY2FsbChhLCBzKTsKICAgIHN0ZDo6Y291dCA8PCBzLnN0cigpOwoKCXJldHVybiAwOwp9