Clang 中的 exit-time destructor warning
写 C++ 的时候,如果前端是 Clang 那么当你定义静态全局变量时, 就可能会出现一个警告, 叫做 “exit-time destructor”。
作为一个习惯把警告当作错误看的骚年, 我果断去查了为什么会这样,而结果是这样的:
全局的静态变量会在程序退出后调用它的 destructor。为啥要在程序退出后才调用呢?因为如果该变量在程序执行过程中被销毁,那么接下来对于该变量的操作都可能导致崩溃。
而在退出后再销毁的代价就是会导致程序退出的时间会延长。而这个警告就是为你指出这一点罢了。