我正在使用 vs2012(vc11) 编写一个 c++ 程序。当我尝试使用有点复杂的 lambda 表达式时。
RasDial(NULL, NULL, 0, 0, &[=]()
{
RasDial(NULL, NULL, 0, 0, &[=](){}, 0);
}, 0);
然后编译给了我一个错误:C2101 & on constant。我改变了地方,然后是这样的代码:
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 编译错误?