Monday, 15 February 2010

c++ - How to return a lambda function? -



c++ - How to return a lambda function? -

for example, can define lambda function as

auto f = [](double value) {double ratio = 100; homecoming value * ratio;}

now want generate function ratio argument , homecoming lambda function like

auto makelambda(double ratio) { homecoming [=](double value) {return value * ratio;}; }

how it?

with c++14 function homecoming type deduction, should work.

in c++11, define lambda (which can deduce homecoming type), rather function (which can't):

auto makelambda = [](double ratio) { homecoming [=](double value) {return value * ratio;}; };

as noted in comments, farther wrapped, if particularly want function:

auto makelambdafn(double ratio) -> decltype(makelambda(ratio)) { homecoming makelambda(ratio); }

c++ c++11 lambda

No comments:

Post a Comment