我喜欢我的方法将任何整数类型作为输入(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函数)
答案 0 :(得分:3)
我不知道你对std::to_string()
有什么看法,但你可以写一个模板并在整数类型上启用它:
template <typename T>
typename std::enable_if<
std::is_integral<T>::value,
std::string
>::type to_string(T t)
{
stringstream convert;
convert << t;
return convert.str();
}