Added move constructor/operator to DynLib

Former-commit-id: af6c6b2ad7803a9ae6d7106188a0b69e341835c0
This commit is contained in:
Lynix 2014-01-08 10:48:23 +01:00
parent d72486d400
commit 9ac4df3c6c
2 changed files with 22 additions and 0 deletions

View File

@ -37,6 +37,7 @@ class NzDynLib : NzNonCopyable
public:
NzDynLib();
NzDynLib(NzDynLib&& lib);
~NzDynLib();
NzString GetLastError() const;
@ -47,6 +48,8 @@ class NzDynLib : NzNonCopyable
bool Load(const NzString& libraryPath, bool appendExtension = true);
void Unload();
NzDynLib& operator=(NzDynLib&& lib);
private:
NazaraMutexAttrib(m_mutex, mutable)

View File

@ -21,6 +21,13 @@ m_impl(nullptr)
{
}
NzDynLib::NzDynLib(NzDynLib&& lib) :
m_lastError(std::move(lib.m_lastError)),
m_impl(lib.m_impl)
{
lib.m_impl = nullptr;
}
NzDynLib::~NzDynLib()
{
Unload();
@ -82,3 +89,15 @@ void NzDynLib::Unload()
m_impl = nullptr;
}
}
NzDynLib& NzDynLib::operator=(NzDynLib&& lib)
{
Unload();
m_impl = lib.m_impl;
m_lastError = std::move(lib.m_lastError);
lib.m_impl = nullptr;
return *this;
}