元编程的英文名字是Meta Programming,也称为模板元编程,可以理解为一种编程手法,用来实现一些比较特殊的功能。元编程一般和“递归”这个词有比较密切的联系,代表着元编程这种编程手法中多数都会用到递归编程技术。
由于元编程这种手法有其特殊性,所以许多资料上会将元编程和泛型编程分开来说。其实模板编程主要应用再两个方面:1.泛型编程 2.元编程
(1)泛型编程:重点突出的是“通用”的概念,这个“泛”字就是通用的意思,程序员不需要关心具体的类型。
(2)元编程:重点突出的是一种程序设计的技巧,达到用常规的编程手段难以达到的效果。元编程可以让某些计算在编译期间完成,从而在很大程度上节约了程序运行的时间,提高程序的运行性能。
一、什么是元函数
传统的函数都是程序运行期间被调用和执行的函数,而元函数是能在编译期间被调用执行的函数(编译期间就能得到结果)。引入元函数概念的目的是支持元编程,而元函数是元编程的核心。
总结:所谓元编程,就是用元函数进行编程,甚至可以说,书写和使用这些元函数的过程本身就是在进行元编程。
c++11标准引入的constexpr关键字用于编译的时候求值,这样能够提升程序运行时的性能。
constexpr int myfun(int</