我正在使用vs2012(vc11)编写c ++程序。当我试图使用一点复杂的lambda表达式。
RasDial(NULL, NULL, 0, 0, &[=]()
{
RasDial(NULL, NULL, 0, 0, &[=](){}, 0);
}, 0);
然后编译给了我一个错误:C2101&不断。我改变了地方,然后是这样的代码:
RasDial(NULL, NULL, 0, 0, &[=](){
auto func = [=](){};
RasDial(NULL, NULL, 0, 0,&func, 0);
}, 0);
通过比较,您可以成功编译以下表达式:
RasDial(NULL,NULL,0,0,&[](){},0);
我推断VC编译无法理解嵌套的lambda与&好。
然后vc11可以成功编译它。 这是否意味着它是一个vc11编译错误?