gpt4 book ai didi

c++ - Lambda捕获,初始化器和嵌套结构

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

有人可以解释这里发生了什么(GCC 7.3):

#include <thread>
#include <iostream>

struct A
{
struct B {};
};

int main()
{
int var = 0;
std::thread([c=A::B(), var](){ }); // error: ‘var’ was not declared in this scope
std::thread([c=A(), var](){ }); // OK
std::thread([c=A::B(), var=var](){ }); // OK
return 0;
}

当我捕获嵌套结构时,我得到:

'var' was not declared in this scope



另一方面,捕获非嵌套结构作品。通过初始化也可以捕获。同样,所有情况都可以在Visual Studio中使用。

最佳答案

自8.1接受以来,它必须是GCC 7.x中的错误。 https://godbolt.org/z/xXw6qN

关于c++ - Lambda捕获,初始化器和嵌套结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60110629/

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