我有一个工厂类,它需要实例化几个带有连续模板参数的模板,这些模板参数是简单的整数。如何在不展开整个循环的情况下实例化此类模板函数?
唯一能想到的就是使用boost预处理器。您能推荐其他不依赖于预处理器的东西吗?
thanks
模板参数必须是编译时常量。目前,没有编译器认为循环计数器变量是常量,即使在展开之后也是如此。这可能是因为在模板实例化期间必须知道常量,这发生在循环展开之前。
但可以构造一个“递归”模板并以专门化作为结束条件。但即便如此,循环边界也需要是编译时间常数。
template<int i>
class loop {
loop<i-1> x;
}
template<>
class loop<1> {
}
loop<10> l;
将创建从loop到loop的十个模板类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)