线程安全的 Singeton
Version >= C++ 11
C++ 11 标准保证了函数作用域对象的初始化以同步方式初始化。这可用于实现具有延迟初始化的线程安全单例。
class Foo
{
public:
static Foo& instance()
{
static Foo inst;
return inst;
}
private:
Foo() {}
Foo(const Foo&) = delete;
Foo& operator =(const Foo&) = delete;
};