#include<iostream>
#include<string>
#include<sstream>
template<typename ostringstream, typename T>
std::string my_to_string (T&& value)
{
ostringstream oss;
oss << value;
return oss.str();
}
#define my_to_string(X) my_to_string<std::ostringstream>(X)
#include<sstream>
int main ()
{
double d = 1.2345;
std::string s = my_to_string(d);
std::cout << "converted: " << s << "\n";
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8c3N0cmVhbT4KCnRlbXBsYXRlPHR5cGVuYW1lIG9zdHJpbmdzdHJlYW0sIHR5cGVuYW1lIFQ+CnN0ZDo6c3RyaW5nIG15X3RvX3N0cmluZyAoVCYmIHZhbHVlKQp7CiAgb3N0cmluZ3N0cmVhbSBvc3M7CiAgb3NzIDw8IHZhbHVlOwogIHJldHVybiBvc3Muc3RyKCk7Cn0KCiNkZWZpbmUgbXlfdG9fc3RyaW5nKFgpIG15X3RvX3N0cmluZzxzdGQ6Om9zdHJpbmdzdHJlYW0+KFgpCgojaW5jbHVkZTxzc3RyZWFtPgoKaW50IG1haW4gKCkKewogIGRvdWJsZSBkID0gMS4yMzQ1OwogIHN0ZDo6c3RyaW5nIHMgPSBteV90b19zdHJpbmcoZCk7CiAgc3RkOjpjb3V0IDw8ICJjb252ZXJ0ZWQ6ICIgPDwgcyA8PCAiXG4iOwp9Cg==