C++ lambda 表达式 问题


    void (*pfunc)(const string&) = [&](const string& s) ->void {

    };

这样转换 为什么是 错的 ,刚学 不太清楚

c++11规定向函数指针转换lambda表达式,不能捕获任何变量。
所以要写成

void (*pfunc)(const string&) = [](const string& s)->void {}

等号左边是函数指针声明,后边是函数体声明,不可以这样赋值,你要赋值给函数指针变量


 
    void (*pfunc)(const string&) funcTest = [&](const string& s) ->void {
 
    };