#include <sstream>
#include <iostream>
#include <string>
using namespace std;
template<class T>
string toString(T var)
{
ostringstream ss;
ss << var;
return ss.str();
}
template<class T>
T fromString(string var)
{
T tmp;
istringstream ss(var);
ss >> tmp;
return tmp;
}
int main()
{
string a;
string b;
float x = 5.0f;
double z = 12.0;
cout << (a=toString(x)) << "\t" << (b=toString(z)) << endl;
cout << fromString<float>(a) << "\t" << fromString<double>(b) << endl;
return 0;
}
I2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAp0ZW1wbGF0ZTxjbGFzcyBUPgpzdHJpbmcgdG9TdHJpbmcoVCB2YXIpCnsKICAgIG9zdHJpbmdzdHJlYW0gc3M7CiAgICBzcyA8PCB2YXI7CiAgICByZXR1cm4gc3Muc3RyKCk7Cn0KIAp0ZW1wbGF0ZTxjbGFzcyBUPgpUIGZyb21TdHJpbmcoc3RyaW5nIHZhcikKewogICAgVCB0bXA7CiAgICBpc3RyaW5nc3RyZWFtIHNzKHZhcik7CiAgICBzcyA+PiB0bXA7CiAgICByZXR1cm4gdG1wOwp9CiAKaW50IG1haW4oKQp7CiAgICBzdHJpbmcgYTsKICAgIHN0cmluZyBiOwogICAgZmxvYXQgeCA9IDUuMGY7CiAgICBkb3VibGUgeiA9IDEyLjA7CiAgICBjb3V0IDw8IChhPXRvU3RyaW5nKHgpKSA8PCAiXHQiIDw8IChiPXRvU3RyaW5nKHopKSA8PCBlbmRsOwogICAgY291dCA8PCBmcm9tU3RyaW5nPGZsb2F0PihhKSA8PCAiXHQiIDw8IGZyb21TdHJpbmc8ZG91YmxlPihiKSA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0=