右值引用到左值引用 - 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 做任何事情。