gpt4 book ai didi

c++ - std::thread 参数(值与常量)

转载 作者:行者123 更新时间:2023-11-28 05:06:17 25 4
gpt4 key购买 nike

当我用一个函数生成一个新线程(std::thread)时,该函数的参数是按值 - 不是按引用。

因此,如果我使用引用参数 (int& nArg) 定义该函数我的编译器(mingw 4.9.2)输出错误(在 compilian-suaeli 中类似我猜是“缺少复制构造函数”;-)

但是如果我将引用参数设置为 const (const int& nArg) 它不会提示。

有人可以解释一下吗?

最佳答案

如果你想传递引用,你必须把它包装成std::reference_wrapper感谢std::ref .喜欢:

#include <functional>
#include <thread>

void my_function(int&);

int main()
{
int my_var = 0;
std::thread t(&my_function, std::ref(my_var));

// ...
t.join();
}

关于c++ - std::thread 参数(值与常量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44694891/

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