(Initializer) Added explicit (un)initialisation
Former-commit-id: 198287ca1cc4e8a53531263a90bcffbcab1ef2b2
This commit is contained in:
parent
a1280a6af3
commit
aedf416949
|
|
@ -13,10 +13,12 @@ template<typename... Args>
|
|||
class NzInitializer
|
||||
{
|
||||
public:
|
||||
NzInitializer();
|
||||
NzInitializer(bool initialize = true);
|
||||
~NzInitializer();
|
||||
|
||||
bool Initialize();
|
||||
bool IsInitialized() const;
|
||||
void Uninitialize();
|
||||
|
||||
operator bool() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -43,16 +43,24 @@ struct NzImplInitializer<>
|
|||
};
|
||||
|
||||
template<typename... Args>
|
||||
NzInitializer<Args...>::NzInitializer()
|
||||
NzInitializer<Args...>::NzInitializer(bool initialize) :
|
||||
m_initialized(false)
|
||||
{
|
||||
m_initialized = NzImplInitializer<Args...>::Init();
|
||||
if (initialize)
|
||||
Initialize();
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
NzInitializer<Args...>::~NzInitializer()
|
||||
{
|
||||
if (m_initialized)
|
||||
NzImplInitializer<Args...>::Uninit();
|
||||
Uninitialize();
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
bool NzInitializer<Args...>::Initialize()
|
||||
{
|
||||
if (!m_initialized)
|
||||
m_initialized = NzImplInitializer<Args...>::Init();
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
|
|
@ -61,10 +69,17 @@ bool NzInitializer<Args...>::IsInitialized() const
|
|||
return m_initialized;
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
void NzInitializer<Args...>::Uninitialize()
|
||||
{
|
||||
if (m_initialized)
|
||||
NzImplInitializer<Args...>::Uninit();
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
NzInitializer<Args...>::operator bool() const
|
||||
{
|
||||
return m_initialized;
|
||||
return IsInitialized();
|
||||
}
|
||||
|
||||
#include <Nazara/Core/DebugOff.hpp>
|
||||
|
|
|
|||
Loading…
Reference in New Issue