#include <iostream>
#include <sstream>
#include <string>
template<typename T>
std::string to_string(const T& obj)
{
std::ostringstream s;
s << obj;
return s.str();
}
struct MyType
{
int x;
double y;
std::string name;
};
std::ostream& operator<<(std::ostream& ostream, const MyType& type)
{
ostream << "x= " << type.x << '\n';
ostream << "y= " << type.y << '\n';
ostream << "name= " << type.name;
return ostream;
}
int main(int argc, char* argv[])
{
std::string temp = to_string(1) + " " + to_string(50.4) + "\n" + to_string(MyType { 10, 20, "Test"});
std::cout << temp;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnN0ZDo6c3RyaW5nIHRvX3N0cmluZyhjb25zdCBUJiBvYmopCnsKICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBzOwogICAgcyA8PCBvYmo7CiAgICByZXR1cm4gcy5zdHIoKTsKfQoKc3RydWN0IE15VHlwZQp7CiAgICBpbnQgeDsKICAgIGRvdWJsZSB5OwogICAgc3RkOjpzdHJpbmcgbmFtZTsKfTsKCnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zdHJlYW0sIGNvbnN0IE15VHlwZSYgdHlwZSkKewogICAgb3N0cmVhbSA8PCAieD0gIiA8PCB0eXBlLnggPDwgJ1xuJzsKICAgIG9zdHJlYW0gPDwgInk9ICIgPDwgdHlwZS55IDw8ICdcbic7CiAgICBvc3RyZWFtIDw8ICJuYW1lPSAiIDw8IHR5cGUubmFtZTsKICAgIHJldHVybiBvc3RyZWFtOwp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQp7CiAgICBzdGQ6OnN0cmluZyB0ZW1wID0gdG9fc3RyaW5nKDEpICsgIiAiICsgdG9fc3RyaW5nKDUwLjQpICsgIlxuIiArIHRvX3N0cmluZyhNeVR5cGUgeyAxMCwgMjAsICJUZXN0In0pOwogICAgCiAgICBzdGQ6OmNvdXQgPDwgdGVtcDsKICAgIHJldHVybiAwOwp9