#include <iostream>
using namespace std;
int main()
{
static bool temp([]{
cout <<"Hi ";
return false;});
cout <<"temp "<< temp;
return 0;
}
它不会执行lambda表达式。但是,如果我们像这样单独声明lambda表达式:
#include <iostream>
using namespace std;
int main()
{
auto lambda = []{
cout <<"Hi ";
return false;};
static bool temp(lambda());
cout <<"temp "<< temp;
return 0;
}
它将执行它。我在这里漏掉了什么?
[]
更改为[=]
,看看会发生什么。 - Kostas