元编程没有可变的变数——也就是说，变数一旦初始化后就不能够改动。因此他可以被视为函数式编程（""）的一种形式。
使用模板超编程.模板超编程的语法通常与一般的程式语法迥异，他有其实际的用途。一些使用模板超编程的共同理由是为了实现泛型编程（""）或是展现自动编译期最佳化，像是只要在编译期做某些事一次就好，而无需每次程式执行时去做。
编译期类别生成.以下将展示究竟何谓"编译期程式设计"。阶乘是一个不错的例子，在此之前我们先来回顾一下一般C++中阶乘函式的递回写法