gpt4 book ai didi

c++ - Boost线程 - 通过引用传递参数

转载 作者:太空狗 更新时间:2023-10-29 19:53:09 27 4
gpt4 key购买 nike

我的应用程序有一个类似于以下代码的部分

void SomeClass::OtherMethod(std::vector<std::string>& g)
{
g.pushback("Something");
}

void SomeClass::SomeMethod()
{
std::vector<std::string> v;
boost::thread t(boost::bind(&SomeClass::OtherMethod,this,v)
t.join();
std::cout << v[0]; //Why is this empty when the vector created on stack
}

我想知道为什么 vector v 在堆栈上创建时为空,而在堆上创建时却有效。我期待上面的代码能够工作,因为即使在堆栈上创建 vector 时,它仍然在范围内。

最佳答案

Bind 复制它的参数。使用 boost::ref:

boost::thread t(boost::bind(&SomeClass::OtherMethod,this, boost::ref(v))

关于c++ - Boost线程 - 通过引用传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17219508/

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