#include <iostream>
void append_to_stream(std::ostream &stream)
{ }
template <typename T, typename... Args>
void append_to_stream(std::ostream &stream, T &&first, Args&&... rest)
{
stream << std::forward< T >( first );
append_to_stream(stream, std::forward< Args >( rest ) ...);
}
typedef std::ostream & (&manip_t)( std::ostream & );
int main() {
append_to_stream(std::cout,
"hello world",
static_cast< manip_t >( std::endl ),
static_cast< manip_t >( std::endl ) );
std::cout << "done\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdm9pZCBhcHBlbmRfdG9fc3RyZWFtKHN0ZDo6b3N0cmVhbSAmc3RyZWFtKQp7IH0KCnRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPgp2b2lkIGFwcGVuZF90b19zdHJlYW0oc3RkOjpvc3RyZWFtICZzdHJlYW0sIFQgJiZmaXJzdCwgQXJncyYmLi4uIHJlc3QpCnsKICBzdHJlYW0gPDwgc3RkOjpmb3J3YXJkPCBUID4oIGZpcnN0ICk7CiAgYXBwZW5kX3RvX3N0cmVhbShzdHJlYW0sIHN0ZDo6Zm9yd2FyZDwgQXJncyA+KCByZXN0ICkgLi4uKTsKfQoKdHlwZWRlZiBzdGQ6Om9zdHJlYW0gJiAoJm1hbmlwX3QpKCBzdGQ6Om9zdHJlYW0gJiApOwoKaW50IG1haW4oKSB7CgphcHBlbmRfdG9fc3RyZWFtKHN0ZDo6Y291dCwgCiAgICAgICAgICAgICAgICAgImhlbGxvIHdvcmxkIiwKICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDwgbWFuaXBfdCA+KCBzdGQ6OmVuZGwgKSwKICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDwgbWFuaXBfdCA+KCBzdGQ6OmVuZGwgKSApOwpzdGQ6OmNvdXQgPDwgImRvbmVcbiI7Cn0K