Core/HandledObject: Make move constructor/assignation operator noexception
This commit is contained in:
parent
2147156df9
commit
8ab1462402
|
|
@ -93,6 +93,7 @@ Nazara Engine:
|
|||
- Fixed SimpleTextDrawer line bounds
|
||||
- ⚠️ Stream::ReadLine will now returns empty lines if present in the file
|
||||
- Fixed cubemaps seams with OpenGL
|
||||
- HandledObject movement constructor/assignement operator are now marked noexcept
|
||||
|
||||
Nazara Development Kit:
|
||||
- Added ImageWidget (#139)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue