【发布时间】:2015-12-27 14:33:40
【问题描述】:
是否可以将可变参数拆分为项目列表并访问它们?下面你可以看到我想要实现的示例 - 第一部分,是标准的,使用可变参数的简单示例
float sum()
{
return 0;
}
template<typename ... Types>
float sum(float first, Types ... rest)
{
return first + sum(rest...);
}
下面,你可以看到我想做的事
template<typename ... Types>
float func(int first, Types ... rest)
{
std::cout<<first<<std::endl;
for(auto item : rest)
cout<<rest<<std::endl;
}
我知道我可以递归地打印和执行操作,但是有没有办法在不使用递归的情况下访问参数?
【问题讨论】:
-
特别是第二个答案,真的是你的。
-
获得 C++1z 支持后,请查看折叠表达式。他们大部分时间都在使用样板。
标签: c++ c++11 stl variadic-templates variadic-functions