Any*_*orn 5 c++ templates factory
我有一个工厂类,需要使用连续的模板参数来实例化几个模板,这些参数是简单的整数.如何在不展开整个循环的情况下实例化这样的模板函数?
唯一可以想到的是使用升压预处理器.你能推荐一些不依赖于预处理器的东西吗?
谢谢
模板参数必须是编译时常量.目前,即使在展开后,编译器也不会将循环计数器变量视为常量.这可能是因为必须在模板即时期间知道常量,这在循环展开之前发生.
但是可以构造一个"递归"模板并将特化作为结束条件.但即使这样,循环边界也需要编译时间常数.
template<int i>
class loop {
loop<i-1> x;
}
template<>
class loop<1> {
}
loop<10> l;
Run Code Online (Sandbox Code Playgroud)
将从循环<10>到循环<1>创建十个模板类.
| 归档时间: |
|
| 查看次数: |
2017 次 |
| 最近记录: |