gpt4 book ai didi

c++ - 使用 C++ 11lambda boost 线程

转载 作者:太空狗 更新时间:2023-10-29 20:12:21 24 4
gpt4 key购买 nike

我如何将 boost 线程与 C++11 lambda 一起使用?

以下代码无效:

int sum;
m_workerThread=new boost::thread([]()
{
for(int i=0;i<100;i++)
{
sum=sum+i;
}
}
);

我遇到了编译错误。

   Error    4   error C3493: 'sum' cannot be implicitly captured because no default capture mode has been specified 

我该如何解决这个问题?

最佳答案

根据错误,只需要捕获sum。按原样,lambda 不知道 sum 是什么:

m_workerThread = new boost::thread([&sum]()
// ^^^^
{
for(int i=0;i<100;i++)
{
sum=sum+i;
}
}
);

关于c++ - 使用 C++ 11lambda boost 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28088707/

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