右值引用到左值引用 - ub?
Rvalue reference to lvalue reference - ub?
这不是 Rvalue reference to lvalue reference
的重复
因为我是针对 C++17 提出这个问题的:由于悬空引用,以下是否仍然会调用未定义的行为(当然,如果使用了引用)?
template <typename T>
constexpr T& to_lvalue(T&& r) noexcept { return r; }
int main()
{
int ten = 10;
int& ref = to_lvalue(ten+8);
// Is ref a dangling reference in C++17?
}
是的,参考悬挂。有一些关于可能将生命周期延长系统扩展到一些其他情况的讨论,但 AFAIK 实际上没有为 C++17 做任何事情。
这不是 Rvalue reference to lvalue reference
的重复因为我是针对 C++17 提出这个问题的:由于悬空引用,以下是否仍然会调用未定义的行为(当然,如果使用了引用)?
template <typename T>
constexpr T& to_lvalue(T&& r) noexcept { return r; }
int main()
{
int ten = 10;
int& ref = to_lvalue(ten+8);
// Is ref a dangling reference in C++17?
}
是的,参考悬挂。有一些关于可能将生命周期延长系统扩展到一些其他情况的讨论,但 AFAIK 实际上没有为 C++17 做任何事情。