c++ - 在模板函数中将 Chars 转换为 Int

标签 c++ templates casting

我有一个打印数字的 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/ (模板特化)

希望对你有帮助

关于c++ - 在模板函数中将 Chars 转换为 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9764295/

相关文章:

c++ - 使用 const 值数组初始化基类

c++ - 出了什么问题 - '{' 标记之前的预期类名

C++ 什么是命名转换等价物

c++ - glm::dot() 不返回 float/double 值?

c++ - 如何存储和调用可变参数函数和值 vector ?

c++ - 有什么方法可以匹配 C++11 中的返回值吗?

c++ - 为什么这个交换函数调用不明确?

java - 为什么这个 lambda 表达式使用 & 符号转换?

java - 将对象的 int 变量与 String 进行比较

c++ - mac osx 上的 eclipse cdt 未在首选项集中显示调试菜单