我想这样实现
#定义XX???
...
标准::向量<;int>;vec;
Func(XX(vec))--&燃气轮机;Func(vec[0],vec[1],…vec[n-1]);
我不知道怎么做
如果你能帮助我,非常感谢
你的
Func(向量[0],向量[1],…向量[n-1])
有一个简单的问题:如果n
在编译时不知道,那么编译器应该生成多少个vec[i],
?从理论上讲,我们可以考虑运行时编译或预生成所有可能性,然后在运行时对其进行调度,但这既疯狂又毫无用处
因此,如果事先不知道n
,请以常规方式处理vec[i]
s:
constepr auto Func(自动和范围){for(自动和元素:范围)/*work*/}
int main(){Func(std::vector{1,2,3});}
但是,如果n
是一个编译时常量,您可以很容易地获得所需的内容,而且Func
甚至可以在STL中为您编写:
intmain(){apply([](自动&;…元素){/*work*/},std::array{1,2,3});}
和,是的,请尽量远离定义< :它们对代码>命名空间、 CONTXPRP和其他基本C++特性一无所知。相反,请考虑粘贴模板——例如,如何实现代码> STD::Apple 。