use*_*635 2 c++ initialization undefined-behavior
以下是否调用未定义的行为?
int x;
int i = x;
Run Code Online (Sandbox Code Playgroud)
参考C++ 03
(4.1/1)如果左值引用的对象不是类型T的对象,并且不是从T派生的类型的对象,或者如果对象未初始化,则需要此转换的程序具有未定义的行为.
编辑: 但是,从(3.3.1/1)开始,对象可能会使用自己的不确定值进行初始化,为什么会这样?即
int x = x; //not an undefined behaviour
Run Code Online (Sandbox Code Playgroud)