gpt4 book ai didi

C++在循环中实例化模板

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:22 25 4
gpt4 key购买 nike

我有一个工厂类,它需要用连续的模板参数实例化几个模板,这些模板参数是简单的整数。如何在不展开整个循环的情况下实例化此类模板函数?

唯一能想到的就是使用boost预处理器。你能推荐一些不依赖于预处理器的东西吗?

谢谢

最佳答案

模板参数必须是编译时常量。目前没有编译器将循环计数器变量视为常量,即使在展开之后也是如此。这可能是因为在模板实例化期间必须知道常量,这发生在循环展开之前。

但是可以构造一个“递归”模板并以特化作为结束条件。但即便如此,循环边界也需要是编译时间常量。

template<int i>
class loop {
loop<i-1> x;
}

template<>
class loop<1> {
}

loop<10> l;

将从循环<10>到循环<1>创建十个模板类。

关于C++在循环中实例化模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1774882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com