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 {
};