没有合适的转换从lambda到typedef

时间:2018-10-30 15:20:51

标签: c++

我有这段代码:

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

0 个答案:

没有答案