谁能告诉我这是否安全且已定义:
class RefClass
{
public:
RefClass(int i) { this->i = i; }
int& GetRef() { return i; }
private:
int i;
};
RefClass rc(10);
int* refp;
{
refp = &rc.GetRef();
}
*refp = 20;
具体来说,我关心嵌套范围内返回的引用的生命周期,以及它是否可以在该范围内被引用,然后在该范围解散后作为左值取消引用。
此代码在 VS2012 中按预期编译和运行,但这并不意味着它会在下一个版本中,所以我试图找到一个明确的答案。