﻿#pragma once
#include <mutex>

class CallOnceSingleton
{
public:
	static CallOnceSingleton& getInstance();

	CallOnceSingleton(const CallOnceSingleton&) = delete;
	CallOnceSingleton& operator=(const CallOnceSingleton&) = delete;
private:
	CallOnceSingleton() = default;
	~CallOnceSingleton() = default;

	static CallOnceSingleton* instance;
	static std::once_flag initInstanceFlag;

	static void initSingleton();
};
