gpt4 book ai didi

c++ - 如何从 boost 线程获取返回值?

转载 作者:行者123 更新时间:2023-11-27 23:40:49 29 4
gpt4 key购买 nike

我想做一些简单的事情

void returnVal(int a, int &b)
{
b = a;
}

int main()
{
int b = 0;
boost::thread t(returnVal,1,b);
t.join();
}

这会引发错误。无法将 int& 转换为 int。必须有一种简单的方法来获取 boost 中的返回值,如果没有,是否有人对原因有一个合理的解释?

最佳答案

boost::thread 构造函数使用 boost::bind。 boost::bind 默认接受它的参数,所以

b = a;

从 main 修改 b 的拷贝。您需要使用 boost::ref() 将对 b 的引用传递给 thread:

boost::thread t(returnVal,1,boost::ref(b));

关于c++ - 如何从 boost 线程获取返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55058773/

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