出于荒谬的原因,我需要以下generic variadic lambda功能。 MINGW-W64上的GCC 5.3.0拒绝它。 column
是一个功能模板。
auto col = [&run](auto&&... params){return column(run,params);}; //error
诊断:
..\src\RunOutputData.cpp: In lambda function:
..\src\RunOutputData.cpp:94:64: error: parameter packs not expanded with '...':
auto col = [&run](auto&&... params){return column(run,params);};
^
..\src\RunOutputData.cpp:94:64: note: 'params'
答案 0 :(得分:1)
在col
lambda中,您使用的是parameter pack,但您没有扩展它。
您的问题的解决方案之一是使用参数column
将其扩展到括号内(授予它已定义并接受您传递给它的参数),以便调用column
params...
auto col = [&run](auto&&... params)
{
return column(run, params...);
};
或完成转发,因为您已经完成了它:
auto col = [&run](auto&&... params)
{
return column(run, std::forward<decltype(params)>(params)...);
};