C++ template 循环

在元编程循环中,我们不需要用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>

...

其实,结果已经在编译期就已经计算完成了,所以最终结果是固定的,结果如下:

C++ template 循环_第1张图片

你可能感兴趣的:(编程,计算机科学,科学技术,c++)