为什么C++的lambda表达式来JavaScript区问呢?因为lambda表达式在C++里也是新标准,好多人都不熟。但是JavaScript的匿名函数大家都懂。这个东西有点类似JavaScript里的匿名函数啦
class A
{
int a, b;
public:
A():a(5),b(6)
{
}
void Print()
{
while ([this]{
cout<<a<<","<<b<<endl;
return (a++)+(b++)>20;
})
{
}
/*
这里定义了一个匿名函数
[this]{
cout<<a<<","<<b<<endl;
return (a++)+(b++)>20;
}
如果是JavaScript,想要直接运行这段代码直接在最后加一个()即可
[this]{
cout<<a<<","<<b<<endl;
return (a++)+(b++)>20;
}()
但C++怎么办呢?
*/
}
}
------解决方案--------------------
auto fun =
[a, b]{
cout<<a<<","<<b<<endl;
return (a++)+(b++)>20;
};
while (fun())
{
}