Tag: 语言 律师

初始化是否需要左值到右值的转换? 是'int x = x;`UB?

C ++标准在第3.3.2节“声明点”中包含了一个“令人惊讶的”名称查找的半名示例: int x = x; 这初始化x本身,这是一个原始类型是未初始化 ,因此有一个不确定的值(假设它是一个自动变量)。 这实际上是不确定的行为? 根据4.1“左值到右值的转换”,对未初始化的值执行左值到右值的转换是未定义的行为。 右边的x是否经历了这种转换? 如果是这样,这个例子实际上是否有未定义的行为?