l<4>::value == 24// Factorial<0>::value == 1void foo()程式码如上在编译时期计算4和0的阶乘值，使用该结果值彷彿他们是预定的常数一般。虽然从程式功能的观点来看，这两个版本很类似，但前者是在执行期计算阶乘，而后者却是在编译期完成计算。然而，为了能够以此方式使用模板，编译器必须在编译期知道模板的参数值，也就是codice_1只有当X在编译期已知的情况下才能使用。换言之，X必须是常数（"constant literal"）或是常数表示式（"cons