#include <iostream>
template < typename T > void write( T&& arg )
{
std::cout << "#args " << 1 << " => " ;
std::cout << "write: " << arg << '\n' ;
}
template < typename FIRST, typename... REST > void write( FIRST&& first, REST&&... rest )
{
std::cout << "#args " << 1 + sizeof...(rest) << " => " ;
write(first) ;
write(rest...) ;
}
int main()
{
int i = 3 ;
double d = 7.89 ;
write( i, &i, d, -120000000000012LL, "hello world" ) ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPCB0eXBlbmFtZSBUID4gdm9pZCB3cml0ZSggVCYmIGFyZyApCnsKICAgIHN0ZDo6Y291dCA8PCAiI2FyZ3MgIiA8PCAxIDw8ICIgPT4gIiA7CiAgICBzdGQ6OmNvdXQgPDwgIndyaXRlOiAiIDw8IGFyZyA8PCAnXG4nIDsKfQoKdGVtcGxhdGUgPCB0eXBlbmFtZSBGSVJTVCwgdHlwZW5hbWUuLi4gUkVTVCA+IHZvaWQgd3JpdGUoIEZJUlNUJiYgZmlyc3QsIFJFU1QmJi4uLiByZXN0ICkKewogICAgc3RkOjpjb3V0IDw8ICIjYXJncyAiIDw8IDEgKyBzaXplb2YuLi4ocmVzdCkgPDwgIiAgPT4gICIgOwogICAgd3JpdGUoZmlyc3QpIDsKICAgIHdyaXRlKHJlc3QuLi4pIDsKfQoKaW50IG1haW4oKQp7CiAgICBpbnQgaSA9IDMgOwogICAgZG91YmxlIGQgPSA3Ljg5IDsKICAgIHdyaXRlKCBpLCAmaSwgZCwgLTEyMDAwMDAwMDAwMDAxMkxMLCAiaGVsbG8gd29ybGQiICkgOwp9Cg==