将编译期函数形式化的最基本方法,由此,编译期函数可以被看作多态的元数据,也就是看作一个类型。元函数类是个内嵌有名为apply的元函数的类。
mpl
本书中的大部分例子都用到了boost metaprogramming library(即mpl)。正如boost的type traits的头文件一样,mpl头文件遵循一个简单的约定:
#include <boost/mpl/component-name.hpp>
然而,如果mpl的某个组件名以下划线结尾,那么对应的mpl头文件名就不包含最后的下划线。例如,mpl::bool_可以在<boost/mpl/bool.hpp>中找到。如果该库的哪些地方没有遵循这个约定,我们会为你指出来。