在模板函数中将字符强制转换为Int
Cast Chars To Int in Template Function
我有一个C++模板函数,它可以打印数字。
除了使用char
类型的数据外,它适用于所有情况。
我希望char
打印为int
,但如果我在模板函数中显式强制转换,那么我将失去float
类型的精度。
我想说:
template<class T> bob(T a){
cout<<if_char_make_int(a)<<endl;
}
但我不知道该怎么做,也不知道这是否可能。
有什么想法吗?
template<class T> void bob(T a){
cout<< a <<endl;
}
template<> void bob(char a){
cout<< static_cast<int>(a) <<endl;
}
欲了解更多信息,请阅读此处http://www.cplusplus.com/doc/tutorial/templates/(模板专业化)
希望它能帮助
template<class T> void bob(T a){
std::cout
<< typename boost::mpl::if_<boost::is_same<char, T>, int, T>::type(a)
<< std::endl;
}
相关文章:
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 是否可以从int转换为enum类类型
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 功能样式转换从 'int' 到 'ItemType' 的匹配转换
- 将 int 数组转换为 std::vector<int*>
- 如何转换 int 变量并附加到常量 wchar_t*
- 类型转换<int>的舍入问题
- 在Objective-C中调用sqlite3数据库时,如何调用和转换int/NSNumber
- 转换 int -> 无符号长 长 是否由标准定义
- 简单的 int 到字符串转换..int to const char* 无效
- 如何将转换 int 除法键入为浮点数
- C++类型转换 int * 到类
- 预期的类型说明符,并且无法在初始化时转换“int*”
- 转换int并将其与char*连接
- 字符串流在转换int型时添加新行
- 转换int为字符串/char c++ /Arduino
- c# P-Invoke:如何转换INT fun(BYTE *bStream, UINT16 *nCount, const
- 类型转换(int**)和int(*)的区别
- 从"int"到"nodeType"的无效转换<int>
- 从无符号int构造对强制转换int的引用