#include <iostream>
#include <fstream>
struct MyStreamingHelper
{
MyStreamingHelper(std::ostream& out1,
std::ostream& out2) : out1_(out1), out2_(out2) {}
std::ostream& out1_;
std::ostream& out2_;
};
template <typename T>
MyStreamingHelper& operator<<(MyStreamingHelper& h, T const& t)
{
h.out1_ << t;
h.out2_ << t;
return h;
}
MyStreamingHelper& operator<<(MyStreamingHelper& h, std::ostream&(*f)(std::ostream&))
{
h.out1_ << f;
h.out2_ << f;
return h;
}
int main()
{
std::ofstream fl;
fl.open("test.txt");
MyStreamingHelper h(fl, std::cout);
h << "!!!Hello World!!!" << std::endl << std::flush;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KCnN0cnVjdCBNeVN0cmVhbWluZ0hlbHBlcgp7CiAgICBNeVN0cmVhbWluZ0hlbHBlcihzdGQ6Om9zdHJlYW0mIG91dDEsCiAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om9zdHJlYW0mIG91dDIpIDogb3V0MV8ob3V0MSksIG91dDJfKG91dDIpIHt9CiAgICBzdGQ6Om9zdHJlYW0mIG91dDFfOwogICAgc3RkOjpvc3RyZWFtJiBvdXQyXzsKfTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpNeVN0cmVhbWluZ0hlbHBlciYgb3BlcmF0b3I8PChNeVN0cmVhbWluZ0hlbHBlciYgaCwgVCBjb25zdCYgdCkKewogICBoLm91dDFfIDw8IHQ7CiAgIGgub3V0Ml8gPDwgdDsKICAgcmV0dXJuIGg7Cn0KCk15U3RyZWFtaW5nSGVscGVyJiBvcGVyYXRvcjw8KE15U3RyZWFtaW5nSGVscGVyJiBoLCBzdGQ6Om9zdHJlYW0mKCpmKShzdGQ6Om9zdHJlYW0mKSkKewogICBoLm91dDFfIDw8IGY7CiAgIGgub3V0Ml8gPDwgZjsKICAgcmV0dXJuIGg7Cn0KCmludCBtYWluKCkKewogICBzdGQ6Om9mc3RyZWFtIGZsOwogICBmbC5vcGVuKCJ0ZXN0LnR4dCIpOwogICBNeVN0cmVhbWluZ0hlbHBlciBoKGZsLCBzdGQ6OmNvdXQpOwogICBoIDw8ICIhISFIZWxsbyBXb3JsZCEhISIgPDwgc3RkOjplbmRsIDw8IHN0ZDo6Zmx1c2g7CiAgIHJldHVybiAwOwp9Cg==