背景

  • 一个函数内部需将函数内的一个变量转为其参数的类型, 函数的参数是引用
  • 本文要演示的环境需要c++11支持(使用了新的关键字 using)
  • 例如 get_value 内部将dobuble类型数据转为 int.
void get_value(int & out_value)
{
/// 测试数据
double query_result = 1.234; /// 得到参数的类型
using out_value_type = remove_ref<decltype(out_value)>::type; /// 执行转换
out_value = static_cast<out_value_type>(query_result);
}

模板

  • 使用下面的模板可得到参数的类型
template<typename T>
class remove_ref
{
public:
typedef T type;
}; template<typename T>
class remove_ref<T&>
{
public:
typedef T type;
};

用法范例

	int int_value = 0;
get_value(int_value);

结果

扩展

  • get_value ,这里演示的是double 数据类型,如果是其他类型(int, char unsigned char......),用这样的方式可支持多种数据类型。 好处多多.

最新文章

  1. 获取打开的Word文档
  2. 使用gulp将移动端px转为rem
  3. js异步加载
  4. sql中文字符串获取拼音首字母
  5. [原创]java WEB学习笔记83:Hibernate学习之路---双向 1-n介绍,关键点解释,代码实现,set属性介绍(inverse,cascade ,order-by )
  6. HDU 1058 Humble Numbers【DP】
  7. poj 3249 Test for Job (记忆化深搜)
  8. Iterator荟萃
  9. Haskell Json数据处理
  10. intelij idea设置和使用git
  11. Python使用lxml模块和Requests模块抓取HTML页面的教程
  12. SQL server 清除缓存
  13. iframe初始化属性
  14. DOM中的事件对象和IE事件对象
  15. Redraw Beautiful Drawings(hdu4888)网络流+最大流
  16. C#编程(三十一)----------泛型总结
  17. CSS学习笔记(9)--详解CSS中:nth-child的用法
  18. plsql中查看sql执行计划
  19. cocos2d-x 动作类
  20. mysql数据库补充知识7 索引原理与慢查询优化

热门文章

  1. MariaDB——在Linux中查找数据库路径,并进入数据库
  2. C4.5决策树-为什么可以选用信息增益来选特征
  3. 多线程高级篇1 — JUC — 只弄到处理高并发集合问题
  4. cvc-complex-type.2.3: Element &#39;servlet&#39; cannot have character [children], because the type&#39;s content
  5. 学习java的第十三天
  6. 我可以减肥失败,但我的 Docker 镜像一定要瘦身成功!
  7. jquery对radio和checkbox的操作
  8. 【编程思想】【设计模式】【行为模式Behavioral】registry
  9. linux系统下安装dubbo-admin
  10. 使用OPC与PLC通讯 一