上文提到了定时器https://blog.csdn.net/allen807733144/article/details/94015407
这个类如果当作单例,那么要加的代码又太多了,故看到用宏来代替一大段代码
先上单例代码:
#ifndef _SINGLETON_H
#define _SINGLETON_H
#include <iostream>
template<typename T>
class Singleton
{
public:
Singleton() = delete;
virtual ~Singleton() = delete;
Singleton(const Singleton&) = delete;
Singleton& operator=(const Singleton&) = delete;
template<typename... Args>
static T& get_instance(Args&&... args)
{
static T t{ std::forward<Args>(args)... };
return t;
}
};
#define DEFINE_SINGLETON(class_name) \
public: \
friend class Singleton<class_name>; \
using singleton = Singleton<class_name>; \
private: \
virtual ~class_name() {} \
class_name(const class_name&) = delete; \
class_name&am