本人以前写过一个C++的单例模式(见此 设计模式C++之单例),想法很简单,不值一提。
最近,看了C++11的新特性中有可变参数模板,想到是否可以以此来改造单例模式。参考了网上的一些经验,写了一个大多数情况下可以通用的一个单例模式,以此记录。
template <typename T>
class SingleTon
{
public:
// 创建单例实例
template<typename... Args>
static T* instance(Args&&... args)
{
if (m_pInstance == nullptr)
{
m_pInstance = new T(std::forward<Args>(args)...);
}
return m_pInstance;
}
// 获取单例
static T* getInstance()
{