我有这段代码:
typedef int(__cdecl *myfunc)(int, int);
myfunc lambda_myfunc = [&](int param1, long param2) -> int
{
if(force_return)
{
return 100;
}
return func_myfunc(param1, param2);
};
当前,这返回一个错误,告诉我从lambda到myfunc
没有合适的转换。当我删除lambda中的&
时,错误消失了,但是我不能再使用超出范围的变量了。
如何使它工作并仍然可以访问lambda中的变量?我也尝试过this
,但导致了相同的错误:
error C2440: 'initializing': cannot convert from '<lambda_e7dad4e226ef0d6944559a04b26d1f43>' to 'myfunc'
note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called