首页 > 代码库 > 模板元的简单学习
模板元的简单学习
特别值得注意的是,因为C++的模板语言是在编译器编译的时候完成的,所以又称为静态语言,通常的C++语言又称为动态语言或者运行时语言。正是因为模板语言是在编译期完成的,所以我们可以借助于这种编译期的计算实现代码自动生成的目的,从而实现C++自动化编程。编译期宏
typedef影射
static类型变量和函数
const 类型变量
=,:?,-运算符
enum
运行期对象使用
函数调用
变量赋值
操作变量时&,+=,++,--等运算符。所以,如果想实现模板元编程,必须要把握的是一定要在编译期完成程序,而不是在程序的运行期,仔细区分运行期和编译期是模板元编程的第一步。
#include <iostream> //编译期四则计算的示例代码 template<size_t i,size_t j> struct Add { enum{value = http://www.mamicode.com/i+j}; };>
运行结果:
2 利用模板元实现递归和循环
#include <iostream> using namespace std; //求阶乘 template<int N> struct power{ enum {value = http://www.mamicode.com/N * power::value};//循环递归过程>
运行结果:
参考文章:
http://blog.csdn.net/pandaxcl/article/details/665409
http://blog.csdn.net/ugg/article/details/2703326
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。