私のアプリケーションには、次のコードのようなセクションがあります
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 が空であり、ヒープ上に作成されたときに機能する理由を知りたかったのです。ベクトルがスタック上に作成されてもスコープ内にあるため、上記のコードが機能することを期待していました。