(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
|
class NzInitializer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NzInitializer();
|
NzInitializer(bool initialize = true);
|
||||||
~NzInitializer();
|
~NzInitializer();
|
||||||
|
|
||||||
|
bool Initialize();
|
||||||
bool IsInitialized() const;
|
bool IsInitialized() const;
|
||||||
|
void Uninitialize();
|
||||||
|
|
||||||
operator bool() const;
|
operator bool() const;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,16 +43,24 @@ struct NzImplInitializer<>
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename... Args>
|
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>
|
template<typename... Args>
|
||||||
NzInitializer<Args...>::~NzInitializer()
|
NzInitializer<Args...>::~NzInitializer()
|
||||||
{
|
{
|
||||||
if (m_initialized)
|
Uninitialize();
|
||||||
NzImplInitializer<Args...>::Uninit();
|
}
|
||||||
|
|
||||||
|
template<typename... Args>
|
||||||
|
bool NzInitializer<Args...>::Initialize()
|
||||||
|
{
|
||||||
|
if (!m_initialized)
|
||||||
|
m_initialized = NzImplInitializer<Args...>::Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
|
|
@ -61,10 +69,17 @@ bool NzInitializer<Args...>::IsInitialized() const
|
||||||
return m_initialized;
|
return m_initialized;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename... Args>
|
||||||
|
void NzInitializer<Args...>::Uninitialize()
|
||||||
|
{
|
||||||
|
if (m_initialized)
|
||||||
|
NzImplInitializer<Args...>::Uninit();
|
||||||
|
}
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
NzInitializer<Args...>::operator bool() const
|
NzInitializer<Args...>::operator bool() const
|
||||||
{
|
{
|
||||||
return m_initialized;
|
return IsInitialized();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <Nazara/Core/DebugOff.hpp>
|
#include <Nazara/Core/DebugOff.hpp>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue