【发布时间】:2016-06-20 19:31:33
【问题描述】:
出于荒谬的原因,我需要以下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'
【问题讨论】:
-
template<class CT> auto run_col(Run<CT>const&run){return [&](auto&&... params){ return column(run,std::forward<decltype(params)>(params)...);};}用auto col = run_col(run);实例化似乎可以工作。auto col = [&run](auto&&... p){return column(run,std::forward<decltype(p)>(p)...);};似乎也可以工作。