Compare diff type values
2014-04-01 21:16
405 查看
闲来无聊,迷上了meta programming 小例子:
#include <iostream> using namespace std; template<typename T1, typename T2> struct IsBigger { static const bool bigger = sizeof(T1) > sizeof(T2); }; template<typename T1, typename T2, bool bigger> struct ReturnType { }; template<typename T1, typename T2> struct ReturnType<T1, T2, true> { typedef typename T1 valType; }; template<typename T1, typename T2> struct ReturnType<T1, T2, false> { typedef typename T2 valType; }; template<typename T1, typename T2> typename ReturnType<typename T1, typename T2, IsBigger<T1, T2>::bigger>::valType Max(const T1& t1, const T2& t2) { typedef typename ReturnType<T1, T2, IsBigger<T1, T2>::bigger>::valType value; value tmp1 = (value)(t1); value tmp2 = (value)(t2); return t1 > t2 ? t1 : t2; }
相关文章推荐
- Json转换利器Gson之实例二-Gson注解和GsonBuilder
- ios学习记录 day22 UI 1
- 重要经验三:UITableView去掉或者修改seperator的颜色(非真正seperator)
- IOS自动化测试之UIAutomation学习
- USACO 2.1.3 Sorting a Three-Valued Sequence(枚举)
- sort 及 priority_queu 中struct结构体的重载<排序
- 8. UIDocumentInteractionController
- 解决ligerui不校验select表单,以及ie678下不校验所有表单问题
- ligerui实现鼠标滑过行,显示单元格内容
- IOS 的UINavigatonBar控件的titleTextAttributes的字典类型的属性
- Cannot assign requested address: JVM_Bind
- JSP中request.getParameter()和session.getAttribute()的区别
- Queue configuration missing child queue names for root
- 64位ubuntu运行jd-gui失败
- Flashback Query查询操作的事务
- UIStepper
- 线程通信---使用阻塞队列(BlockingQueue)控制线程通信
- Java基础之String、StringBuffer、StringBuilder的区别
- 关于TrueType字体结构的文章
- easyUI学习笔记