所有整数类型的函数重载
Function overloading for all integer types
我希望我的方法将任何整数类型作为输入(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()
有什么看法,但你可以写一个模板并在整型上启用它:
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();
}
相关文章:
- 为什么使用SFINAE而不是函数重载
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- c++:可变模板和函数重载
- 在缺少函数重载时抛出异常,并带有 std::variant 而不是编译时错误
- 解决模板成员函数重载
- 为什么不允许成员函数和非成员函数之间的函数重载?
- 推断模板化函数中的函数重载
- C++复制函数重载导致"must be a nonstatic member function"错误
- 为什么 std::sort 找不到合适的(静态成员)函数重载?
- 可变参数泛型 lambda 和函数重载
- C++中的函数重载和继承
- 当有右值构造函数可用时,为什么从右值调用类引用构造函数重载?
- C/C++ 可变参数宏函数重载
- 将基类的成员函数重载到其他派生类C++
- C++ 函数重载匹配
- C++函数重载,具体步骤是什么
- C++:使用 param pack 显式调用函数重载
- 隐式生成的函数重载用于右值参数?
- 使用函数重载输入运算符
- 运算符重载函数上的函数重载