我的应用程序有一个类似于以下代码的部分
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
}
我想知道为什么在堆栈上创建向量时向量 v 为空,而在堆上创建向量时它工作。我期待上面的代码能够工作,因为即使在堆栈上创建向量,它仍然在范围内。