下面的代码无法编译(请参阅代码下面的错误)。你能解释一下为什么吗?
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...));