http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Static_and_Global_Variables
类类型的静态或全局变量是被禁止的:由于构造和销毁的不确定顺序,它们会导致难以发现的错误。
如果类类型的全局变量不依赖于其他全局变量,例如std::string strvar("abc")
,那么使用它有什么问题/不安全?
该指南还说:
...除了禁止类类型的全局变量外,我们不允许使用函数的结果来初始化静态 POD 变量,除非该函数(例如 getenv() 或 getpid())本身不依赖于任何其他全局变量。
我认为strvar
出于同样的原因很好:它的构造函数本身不依赖于任何其他全局变量。
另外我想知道 C++11 对 POD 的更宽松的定义在这方面是否有任何反映?