Singleton.h
#pragma once
class Singleton
{
public:
static Singleton* instance();
~Singleton();
private:
Singleton();
static Singleton* instance_;
};
Singleton.cpp
#include <mutex>
#include "Singleton.h"
Singleton* Singleton::instance_ = nullptr;
Singleton::Singleton()
{
}
Singleton::~Singleton()
{
}
Singleton* Singleton::instance()
{
static std::once_flag once_flag;
std::call_once(once_flag, []()
{
instance_ = new Singleton();
});
return instance_;
}