小编i c*_*hik的帖子

C++ 参数包扩展

下面的代码无法编译(请参阅代码下面的错误)。你能解释一下为什么吗?

template <class F, class... Arg>
void for_each_argument(F f, Arg&&... arg)
{
   f(std::forward<Arg>(arg...));
}
int main()
{
   for_each_argument(
     [](const auto& a){std::cout<< a;}, "Aa", 3, 4);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是一条错误消息:

7:4:错误:表达式包含未扩展的参数包“Arg”

f(std::forward(arg...));

c++ templates

2
推荐指数
1
解决办法
3422
查看次数

标签 统计

c++ ×1

templates ×1