这段代码是否有效?
int foo()
{
std::vector<std::string>& v = std::vector<std::string>(5, "X");
// Do something silly...
return 42;
}
由于某种原因,我认为临时的
std::vector
对象(紧接着赋值符号)在它的构造后就应该被销毁(从而使引用无效)。然而,调试证明我是错误的,我意识到我不太理解为什么当函数返回时,临时变量会被销毁。
我想我对一些基本的东西有一个强烈的误解,请给我普及一下 :)