- Mesaj
- 1.328
- Çözümler
- 75
- Beğeni
- 5.059
- Puan
- 2.859
- Ticaret Puanı
- 0
singleton.h dosyası tam olarak ne işe yarıyor ve en azından basit düzeyde de olsa geliştirilme yapılmalımı?
singleton.h:
#ifndef __INC_SINGLETON_H__
#define __INC_SINGLETON_H__
#include <cassert>
#include <memory>
template <typename T>
class singleton
{
public:
static std::unique_ptr<T> ms_singleton;
singleton()
{
assert(!ms_singleton);
ms_singleton.reset(static_cast<T*>(this));
}
virtual ~singleton()
{
assert(ms_singleton);
ms_singleton.reset();
}
static T& instance()
{
assert(ms_singleton);
return *ms_singleton;
}
static T& Instance()
{
return instance();
}
static T* instance_ptr()
{
return ms_singleton.get();
}
};
template <typename T> std::unique_ptr<T> singleton<T>::ms_singleton = nullptr;
#endif