void moo() { static std::string cat("argent"); // not thread safe ... }
使用C 0x标准终于提供标准线程支持,是要求线程安全的函数范围静态初始化吗?
§ 6.7 stmt.decl
…这样一个对象被初始化,第一次控制通过它的声明…如果控件在对象被初始化时同时进入声明,则并发执行将等待完成初始化…
有一个潜在的边缘情况,如果从main()返回后,静态对象的析构函数在static local已经被破坏后调用该函数,行为是未定义的.但是,应该很容易避免.