初始化是否需要从lvalue到rvalue的转换?‘int x=x;’UB?
C+标准包含了3.3.2中“令人惊讶的”名称查找的一个半著名的示例“声明点”:
int x = x;
这将初始化x
它本身,它(是一个原始类型)是未初始化因此,它有一个不确定的值(假设它是一个自动变量)。
这实际上是没有定义的行为吗?
根据4.1“lvalue-rvalue转换”,对未初始化的值执行lvalue-rvalue转换是未定义的行为。右手x
接受这个转变?如果是这样的话,这个例子是否真的有未定义的行为呢?