下面是一个示例代码,展示了如何使用变长模板展开,除了第i个条目之外展开。
#include
// 定义模板递归终止条件
template
void expand() {
std::cout << "Item " << i << std::endl;
}
// 定义模板递归展开的过程
template
void expand() {
// 除了第i个条目之外展开
if (i != 2) {
std::cout << "Item " << i << std::endl;
}
// 递归展开下一个条目
expand();
}
int main() {
// 展开1到5之间的条目(除了第2个条目之外)
expand<1, 5>();
return 0;
}
该示例使用了模板递归的方式,通过在模板参数中指定起始和结束的条目编号,然后在模板函数中判断当前的条目编号是否是要排除的条目,如果不是,则打印该条目,并递归展开下一个条目。在main
函数中,我们展开了1到5之间的条目(除了第2个条目之外)。输出结果如下:
Item 1
Item 3
Item 4
Item 5
上一篇:变长模板继承中的运算符重载
下一篇:变长模板中的和类型