Core/HandledObject: Make move constructor/assignation operator noexception
This commit is contained in:
@@ -23,16 +23,16 @@ namespace Nz
|
||||
public:
|
||||
HandledObject() = default;
|
||||
HandledObject(const HandledObject& object);
|
||||
HandledObject(HandledObject&& object);
|
||||
HandledObject(HandledObject&& object) noexcept;
|
||||
~HandledObject();
|
||||
|
||||
ObjectHandle<T> CreateHandle();
|
||||
|
||||
HandledObject& operator=(const HandledObject& object);
|
||||
HandledObject& operator=(HandledObject&& object);
|
||||
HandledObject& operator=(HandledObject&& object) noexcept;
|
||||
|
||||
protected:
|
||||
void UnregisterAllHandles();
|
||||
void UnregisterAllHandles() noexcept;
|
||||
|
||||
private:
|
||||
void RegisterHandle(ObjectHandle<T>* handle);
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace Nz
|
||||
* \param object HandledObject to move into this
|
||||
*/
|
||||
template<typename T>
|
||||
HandledObject<T>::HandledObject(HandledObject&& object) :
|
||||
HandledObject<T>::HandledObject(HandledObject&& object) noexcept :
|
||||
m_handles(std::move(object.m_handles))
|
||||
{
|
||||
for (ObjectHandle<T>* handle : m_handles)
|
||||
@@ -84,7 +84,7 @@ namespace Nz
|
||||
* \param object HandledObject to move in this
|
||||
*/
|
||||
template<typename T>
|
||||
HandledObject<T>& HandledObject<T>::operator=(HandledObject&& object)
|
||||
HandledObject<T>& HandledObject<T>::operator=(HandledObject&& object) noexcept
|
||||
{
|
||||
UnregisterAllHandles();
|
||||
|
||||
@@ -112,7 +112,7 @@ namespace Nz
|
||||
* \brief Unregisters all handles
|
||||
*/
|
||||
template<typename T>
|
||||
void HandledObject<T>::UnregisterAllHandles()
|
||||
void HandledObject<T>::UnregisterAllHandles() noexcept
|
||||
{
|
||||
// Tell every handle we got destroyed, to null them
|
||||
for (ObjectHandle<T>* handle : m_handles)
|
||||
|
||||
@@ -49,8 +49,8 @@ namespace Nz
|
||||
static const ObjectHandle InvalidHandle;
|
||||
|
||||
protected:
|
||||
void OnObjectDestroyed();
|
||||
void OnObjectMoved(T* newObject);
|
||||
void OnObjectDestroyed() noexcept;
|
||||
void OnObjectMoved(T* newObject) noexcept;
|
||||
|
||||
T* m_object;
|
||||
};
|
||||
|
||||
@@ -268,7 +268,7 @@ namespace Nz
|
||||
* \brief Action to do on object destruction
|
||||
*/
|
||||
template<typename T>
|
||||
void ObjectHandle<T>::OnObjectDestroyed()
|
||||
void ObjectHandle<T>::OnObjectDestroyed() noexcept
|
||||
{
|
||||
// Shortcut
|
||||
m_object = nullptr;
|
||||
@@ -278,7 +278,7 @@ namespace Nz
|
||||
* \brief Action to do on object move
|
||||
*/
|
||||
template<typename T>
|
||||
void ObjectHandle<T>::OnObjectMoved(T* newObject)
|
||||
void ObjectHandle<T>::OnObjectMoved(T* newObject) noexcept
|
||||
{
|
||||
// The object has been moved, update our pointer
|
||||
m_object = newObject;
|
||||
|
||||
Reference in New Issue
Block a user