以下示例中给出的结构有什么不幸之处?

What is unfortunate about the construction given in the following example?

“15.6.2 初始化基和成员”(N4713) 部分在第 11 项之后有以下示例:

struct A {
    A() = default; // OK
    A(int v) : v(v) { } // OK
    const int& v = 42; // OK
};
A a1; // error: ill-formed binding of temporary to reference
A a2(1); // OK, unfortunately

示例最后一行的构造有什么不幸

我在整个参考资料中搜索了允许的其他 "unfortunate" 行为,但我可以找到 none。

如果在这种特定情况下不幸,是否可以不将其定为非法?

在这两种情况下,A::v 都是悬挂引用(从 42 临时引用,或构造函数的参数 v)。

在某些情况下引用临时(即使延长了生命周期)可能是合法的并且可以正确使用。

很难检测到所有滥用案例以禁止它们。