Added move constructor/operator to DynLib
Former-commit-id: af6c6b2ad7803a9ae6d7106188a0b69e341835c0
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user