gpt4 book ai didi

C++ 使用 lambda 初始化变量

转载 作者:行者123 更新时间:2023-12-02 01:06:41 25 4
gpt4 key购买 nike

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

它将执行它。我在这里缺少什么?

最佳答案

您需要调用 lambda,就像第二个代码片段一样。

static bool temp([]{ 
cout <<"Hi ";
return false;}());
// ^^

LIVE

<小时/>

PS:在第一个代码片段中 temp 将始终初始化为 true,因为 lambda没有捕获列表可以隐式转换为函数指针;这是一个非空指针,然后可以转换为值为 truebool

关于C++ 使用 lambda 初始化变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59384241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com