在元编程循环中,我们不需要用while,for来循环,一般情况下都要用递归,例如:
#include
using namespace std;
template
constexpr static int num = Head + num;
template
constexpr static int num = Head;
int main()
{
cout << num<3, 5, 7, 8, 7, 634, 53, 523, 423, 423, 32, 434, 654, 645, 534, 345, 346, 456, 43, 34, 534, 534> << endl;
getchar();
return 0;
}
这个模板的实例化如下:
num<3, 5, 7, 8, 7, 634, 53, 523, 423, 423, 32, 434, 654, 645, 534, 345, 346, 456, 43, 34, 534, 534>
num<5, 7, 8, 7, 634, 53, 523, 423, 423, 32, 434, 654, 645, 534, 345, 346, 456, 43, 34, 534, 534>
...
其实,结果已经在编译期就已经计算完成了,所以最终结果是固定的,结果如下: