当 C++ 全局变量未显式初始化时发出警告?
Warning when C++ globals are not explicitly initialized?
假设我有一个全局(或命名空间范围)变量,例如:
int *Pointer;
这当然是零初始化的,但是在 Clang 中(或使用 Clang 的静态分析工具)有没有办法警告 Pointer
没有被显式初始化?我已经搜索过,但找不到任何东西。
按照标准,没有理由对隐式初始化发出警告,它与显式初始化没有区别。如果你足够派生,你可以用会警告它的模板替换传统类型。但这违背了懒惰的目标,对吧?
或者,更好的是,不要使用裸指针,别名色情不酷。
假设我有一个全局(或命名空间范围)变量,例如:
int *Pointer;
这当然是零初始化的,但是在 Clang 中(或使用 Clang 的静态分析工具)有没有办法警告 Pointer
没有被显式初始化?我已经搜索过,但找不到任何东西。
按照标准,没有理由对隐式初始化发出警告,它与显式初始化没有区别。如果你足够派生,你可以用会警告它的模板替换传统类型。但这违背了懒惰的目标,对吧?
或者,更好的是,不要使用裸指针,别名色情不酷。