VS 2013中的C ++ 11 lambda回调不会编译

时间:2015-11-20 11:11:43

标签: c++ c++11 lambda

我无法理解为什么我的以下代码无法在VS 2013中编译。编译器只是抱怨如下,我不知道如何解决它:

  

e:\ work \ justtest \ console \ console.cpp(37):错误C2664:' bool   dfsFolder(const wchar_t *,const wchar_t *,std :: function&)' :无法转换参数3   '主::'至   ' std :: function&'

bool dfsFolder(__in const wchar_t* folderPath, __in const wchar_t* ext, const std::function<bool(const std::wstring& wsFilePath)>& pFunc)
{

}

int main()
{
        auto path = LR"(F:\TODOWNLOAD\)";
        auto lambda = [&](const std::wstring& wsFilePath) mutable -> bool
        {
            wcout << wsFilePath << endl;
            return true;
        };
        dfsFolder(path, L"*.jpg", lambda);
}

1 个答案:

答案 0 :(得分:1)

错误消息似乎与代码不匹配:最后一个参数是错误中所述的std::function<...> const&而不是std::function<...>&。您的实际代码是否将std::function<...>&参数声明为const