在c ++中我们std::to_string将int/float/double转换为字符串.所以,为了测试我对模板的理解,我尝试了下面的代码:
#include "iostream"
#include "sstream"
#include "string"
using std::cout;
template <typename T>
std::string getString(const T& data){
std::stringstream ss;
cout << '\n' << data << '\n';
ss << data;
std::string s;
ss >> s;
return s;
}
int main(int argc , char** argv){
cout << getString(1.0000011);
cout <<' '<<std::to_string(1.0000011);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然而,输出没有意义,to_string给我1.0000011,而getString得到1并给我1.因为我使用模板也不应该getString得到1.0000011并给我1.0000011?