#include <iostream>
#define endl static_cast<std::ostream&(*)(std::ostream&)>(std::endl)
using namespace std;
namespace foo {
template <typename T>
void cout (const T& value) {
std::cout<<value;
}
template <typename T, typename... R>
void cout (const T& head, const R&... tail) {
std::cout<<head;
cout(tail...);
}
}
int main() {
using foo::cout; //przyslaniamy cout z std nasza wlasna funkcja
string a = "niewiemco";
cout(23, endl, 12312, "\n", 12412, endl, a);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojZGVmaW5lIGVuZGwgc3RhdGljX2Nhc3Q8c3RkOjpvc3RyZWFtJigqKShzdGQ6Om9zdHJlYW0mKT4oc3RkOjplbmRsKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbmFtZXNwYWNlIGZvbyB7CnRlbXBsYXRlIDx0eXBlbmFtZSBUPgp2b2lkIGNvdXQgKGNvbnN0IFQmIHZhbHVlKSB7CglzdGQ6OmNvdXQ8PHZhbHVlOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gUj4Kdm9pZCBjb3V0IChjb25zdCBUJiBoZWFkLCBjb25zdCBSJi4uLiB0YWlsKSB7CglzdGQ6OmNvdXQ8PGhlYWQ7Cgljb3V0KHRhaWwuLi4pOwp9Cn0KCmludCBtYWluKCkgewoJdXNpbmcgZm9vOjpjb3V0OyAvL3ByenlzbGFuaWFteSBjb3V0IHogc3RkIG5hc3phIHdsYXNuYSBmdW5rY2phCglzdHJpbmcgYSA9ICJuaWV3aWVtY28iOwoJY291dCgyMywgZW5kbCwgMTIzMTIsICJcbiIsIDEyNDEyLCBlbmRsLCBhKTsKCXJldHVybiAwOwp9Cg==