【发布时间】:2021-07-17 00:51:02
【问题描述】:
考虑以下代码:
#include <vector>
struct temp {
int& get() { return i; }
int i = 1;
};
int main() {
std::vector<int> v;
v.push_back(temp{}.get());
}
上述格式正确的代码还是UB?
我怀疑从get() 返回的引用,它在最后一个分号处悬空。但是此时push_back 已经被评估了,所以没关系,不是吗?
【问题讨论】:
标签: c++ reference temporary-objects