#ifndef _MyType_h_
#define _MyType_h_
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
template<class in_value>
extern void all2str(string & result, const in_value& t);
template<class out_type,class in_value>
extern out_type all2all(const in_value & t);
//编译器报错,函数没有写在CPP中
template<class in_value>
void all2str(string & result, const in_value& t)
{
ostringstream oss; //创建一个流
oss<<t; //把值传递如流中
result=oss.str(); //获取转换后的字符转并将其写入result
}
template<class out_type,class in_value>
out_type all2all(const in_value & t)
{
stringstream stream;
stream<<t; //向流中传值
out_type result; //这里存储转换结果
stream>>result; //向result中写入值
return result;
}
#endif
#include <iostream>
#include "MyType.h"
using namespace std;
int main()
{
string s1,s2,s3;
all2str(s1,10.5); //double到string
all2str(s2,123); //int到string
all2str(s3,true); //bool到string
cout << s1<<" , "<< s2<<" , "<< s3 << endl;
double d;
string s4="12.56";
d=all2all<double>(s4); //d等于12.56
string s5;
s5=all2all<string>(9000.0); //s5等于”9000”
cout << d <<" , "<< s5 << endl;
while(1);
return 0;
}