http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Static_and_Global_Variables
クラス型の静的変数またはグローバル変数は禁止されています。構築と破棄の順序が不確定であるため、見つけにくいバグが発生します。
クラス型のグローバル変数が などの他のグローバル変数に依存していないstd::string strvar("abc")
場合、それを使用するのは何が間違っている/安全でないのですか?
また、ガイドは次のようにも述べています。
...クラス型のグローバルを禁止することに加えて、静的 POD 変数を関数の結果で初期化することを許可しません。他のグローバル。
同じ理由で問題ないと思いますstrvar
。そのコンストラクター自体は他のグローバルに依存しません。
また、C++11 の POD のより緩い定義には、この点に関して何らかの反映があるのだろうか?