简单的一个C++中traits功能的实现例子
来源:互联网 发布:javascript启示录 云盘 编辑:程序博客网 时间:2024/05/16 12:39
#include <iostream>//用于标记不同的类型struct _false_type {};struct _true_type {};//-------------------------------使用模板特例化功能,在不同类型内放置不同的定义类型------------------template<typename value_type>struct type_traits{typedef _true_type Can_Print;};class MyType{};//此处使用到模板特例化template<>struct type_traits<MyType>{typedef _false_type Can_Print;};//相当于中转站,根据不同的类型转到不同的实际操作template<typename value_type>void Print(value_type value){typedef typename type_traits<value_type>::Can_Print Can_Print;_Print(value, Can_Print());}//-----------------------------实际操作如何进行-------------------------template<typename value_type>void _Print(value_type value, _false_type){std::cout << "this type can't printed!" << std::endl;}template<typename value_type>void _Print(value_type value, _true_type){std::cout << value << std::endl;}//主函数int main(int argc, char const *argv[]){int x = 0;Print(x);MyType m;Print(m);std::cin.get();return 0;}
0 0
- 简单的一个C++中traits功能的实现例子
- 一个简单的Traits进阶过程
- 对于C++中traits的简单介绍
- 一个在程序中实现plugin机制的简单例子
- SQL2000 存储过程中实现递归的一个简单例子
- 一个简单的Spring实现的例子
- Android中实现一个简单的分享功能
- Linux C编程的一个小例子——实现一个简单的who命令(第一版)
- [Atlas]一个Atlas实现的简单例子
- 一个简单的VCard实现例子
- Laravel实现一个简单的小例子
- 一个最简单的dubbo例子实现
- 实现一个简单的工作流例子全过程
- 实现一个简单的工作流例子全过程
- 实现一个简单的工作流例子全过程
- java中Synchronized的一个简单例子
- ORACLE中一个简单的PIVOT例子
- ORACLE中一个简单的UNPIVOT例子
- 如何定位Obj-C野指针随机Crash(二):让非必现Crash变成必现
- 黑马程序员——多线程
- 中文select 加载完成后再排序
- BZOJ 3899 仙人掌树的同构 仙人掌同构+KMP算法
- jQuery Mobile页面跳转导致css、js失效原因及解决方法
- 简单的一个C++中traits功能的实现例子
- httl 一个比freemarker 还牛逼的静态框架
- jquery ajax超时设置
- Android入门(44)——第六章 使用OptionsMenu实现选项菜单
- CSS的引入方式最常用的有三种
- 防止ViewPager中的Fragment被销毁的方法
- FreeRTOS 使用指南
- GRE写作必备句型
- 面试题1:如何实现C++单例模式