我想我的方法採取任何整數類型作爲輸入(uint64_t,int,uint32_t等)。我是否需要用它們中的每一個的單獨方法聲明來重載它?如果它收到一個固定寬度的意外類型的整數,我擔心發生了什麼壞事。所有整數類型的函數重載
string
to_string(uint64_t t)
{
stringstream convert;
convert << t;
return convert.str();
}
string
to_string(uint32_t t)
{
stringstream convert;
convert << t;
return convert.str();
}
string
to_string(int t)
{
stringstream convert;
convert << t;
return convert.str();
}
(我不想使用C++ 11 to_string功能)
您可以使您的功能成爲模板。另外,你有什麼反對不使用'std :: to_string'? – 5gon12eder
也許我只是不明白C++ 11,但我的代碼目前不在某些機器上編譯(錯誤:'to_string'不是'std'的成員),我不想強加限制用戶需要C++ 11。 另一方面,也許所有的編譯器都有C++ 11,我只需修改Makefile?我想我甚至不知道它是什麼。 – Colby
您可能必須向編譯器添加一個標誌。至少對於GCC來說,它是'-std = C++ 11'。還要注意['boost :: lexical_cast'](http://www.boost.org/doc/libs/1_57_0/doc/html/boost_lexical_cast.html)。 – 5gon12eder