码迷,mamicode.com
首页 >  
搜索关键字:模板元编程    ( 51个结果
Effective C++ 条款48
本节条款:了解模板元编程本节条款是对模板元编程的简单介绍,让读者知道有这么一种编程方式,更确切的说是一种技术。 那么,什么是模板元编程?模板元编程有什么好处?按照作者的原话就是: 1. TMP可将工作由运行期转移到编译期,因而得以实现早期错误侦测或者更高的执行效率。 2. TMP可被用来生成“基于政策选择组合”的客户定制代码,也可以用来避免生成对某些特殊类型并不适合的代码。 说原理容易让人不...
分类:编程语言   时间:2015-06-11 13:07:41    阅读次数:163
模板元编程加速递归
//模板元编程加速递归 //缺点:模板元在编译时处理,无法调试,并且会加大代码体积 #include using namespace std; template struct data {     enum{res = data::res + data::res}; }; template struct data {     enum{res =...
分类:其他好文   时间:2015-04-25 00:19:47    阅读次数:139
c++模板元编程七:类型判断的traits类
2 用于判断类型的traits类is_void类可以判断模板参数的类型,使用很简单,注意,也可以直接使用::value。cout ::type::value << endl; cout ::type::value << endl; 但是实现很有趣,特化居然可以用来继承不同的类。这里没有去找clang++实现代码,用boost代码代替吧。template struct is_void : publ...
分类:编程语言   时间:2015-04-06 23:21:06    阅读次数:293
c++模板元编程六:integral_constant 类
1 integral_constant类这个类是所有traits类的基类,分别提供了以下功能:value_type 表示值的类型value表示值type 表示自己, 因此可以用::type::value来获取值true_type和false_type两个特化类用来表示bool值类型的traits,很多traits类都需要继承它们下面的代码分别来自C++11和Boost,略有差别:C++11包含va...
分类:编程语言   时间:2015-04-06 18:45:19    阅读次数:298
c++模板元编程五:switch/case语句编译时运行
2.4 switch/case 替代现在模拟switch/case语句,不过也是在编译期运行。先看调用代码和输出结果// test case cout << "test case" << endl; Case::Run(); test case case 2 实现代码很简单,还是模板特化template class Case { public: static inline void Run()...
分类:编程语言   时间:2015-04-05 22:02:23    阅读次数:223
c++模板元编程一:基本概念
1 基本概念1.1 meta program 元程序可以用meta program生成object program, 也可以object program作为数据看待,从而组装出更大的object program 元程序是处理程序的程序,如大家熟悉的编译器、解释器、类型检查器、定理证明器、程序生成器、转换系统和程序分析器等等1.2 object program 目标程序目标程序,又称为“目的程序”,...
分类:编程语言   时间:2015-04-05 17:33:38    阅读次数:157
c++模板元编程三:循环展开
2.2 loop unrolling 循环展开前面enum一节介绍的是和template联合,引发编译器递归的奇妙作用。template本身无需enum配合也可以达到递归的效果。// test template recursive for loop unrolling cout << "test 2: template recursive for loop unrolling" << en...
分类:编程语言   时间:2015-04-05 17:32:12    阅读次数:222
c++模板元编程二:用enum做数值计算
2.1 用enum做数值计算下面两篇文章都介绍了模板元编程,enum是其最重要的基本工具 http://www.codeproject.com/Articles/3743/A-gentle-introduction-to-Template-Metaprogramming https://www10.informatik.uni-erlangen.de/~pflaum/pflaum/ProSemin...
分类:编程语言   时间:2015-04-05 17:31:44    阅读次数:118
c++模板元编程四:IF语句编译时运行
2.3 if 替代将if语句放在编译期执行,可以用模板特化的方式实现。下面是调用代码:// test if cout << "test if" << endl; If::Run(); 输出结果为:test if it's false 模板类的实现如下:template class If { public: static inline void Run() { cout << "it's...
分类:编程语言   时间:2015-04-05 17:31:41    阅读次数:133
EC笔记,第一部分:1.视C++为一个语言联邦
C++可看作由以下四种次语言组合而成1.C语言 高效,内置数据类型,数组,区块,语句,指针,预处理器,没有重载、异常、模板2.类 构造,析构,封装,继承,多态,迟绑定3.模板 模板元编程,不关心数据类型,只关心数据结构与算法4.STL 标准模板库,容器,迭代器,算法,函数对象
分类:编程语言   时间:2015-03-28 23:13:41    阅读次数:178
51条   上一页 1 2 3 4 5 6 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!