Clang 中的 exit-time destructor warning

写 C++ 的时候,如果前端是 Clang 那么当你定义静态全局变量时, 就可能会出现一个警告, 叫做 “exit-time destructor”。

作为一个习惯把警告当作错误看的骚年, 我果断去查了为什么会这样,而结果是这样的:

全局的静态变量会在程序退出后调用它的 destructor。为啥要在程序退出后才调用呢?因为如果该变量在程序执行过程中被销毁,那么接下来对于该变量的操作都可能导致崩溃。

而在退出后再销毁的代价就是会导致程序退出的时间会延长。而这个警告就是为你指出这一点罢了。

 

posted @ 2015-07-10 16:22  wu_overflow  阅读(1516)  评论(0编辑  收藏  举报