const vector<int>& getVec(const vector<int> &vec)
{
return vec;
}
我的函数是这样的,如果我使用临时对象调用getVec
,这段代码会安全吗?
int main()
{
const vector<int> &v = getVec({1,2,3,4,5});
}
我在g++和Visual Studio中运行此代码,但我得到了两个不同的结果:
g++告诉我:函数的向量与v相同,并且它们具有相同的值。
Visual Studio告诉我:函数的向量具有与v相同的地址,但v.size()仅为0,而不是5
针对这种情况是否有标准答案?一个const
引用返回值只能引用函数体之前存在的值吗?
v
被赋值为{1, 2, 3, 4, 5}
之后吗? - Cosemuckel