C++ 日志模块

最新实现了一个小巧灵活的日志模块,相关的知识点比较少,主要是存储的管理、线程同步以及可变参数的展开与传递。

首先用模板和单例实现了一个缓存的管理类:

MemCacheTemplateSingleton.h

#include 
#include 
#pragma once
using namespace std;


template 
class MemCacheTemplateSingleton
{
private:
	MemCacheTemplateSingleton()
	{
	}
	~MemCacheTemplateSingleton()
	{
		for (auto item : m_Items)
		{
			delete item;
		}

		m_Items.clear();
	}
	MemCacheTemplateSingleton(MemCacheTemplateSingleton&) = delete;
	MemCacheTemplateSingleton& operator=(MemCacheTemplateSingleton&) = delete;
public:
	static MemCacheTemplateSingleton& GetInstance()
	{
		return m_Instance;
	}

	void Init(int initNum = 64)
	{
		for (auto i = 0; i < initNum; i++)
		{
			m_Items.push_back(new T());
		}
	}

	T* Allocate()
	{
		lock_guard guard(m_Mutex);
		if (!m_Items.empty())
		{
			auto item = m_Items.front();
			m_Items.pop_f

你可能感兴趣的:(紫云的程序人生,C++,日志模块,c++)