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
|
- Fixed SimpleTextDrawer line bounds
|
||||||
- ⚠️ Stream::ReadLine will now returns empty lines if present in the file
|
- ⚠️ Stream::ReadLine will now returns empty lines if present in the file
|
||||||
- Fixed cubemaps seams with OpenGL
|
- Fixed cubemaps seams with OpenGL
|
||||||
|
- HandledObject movement constructor/assignement operator are now marked noexcept
|
||||||
|
|
||||||
Nazara Development Kit:
|
Nazara Development Kit:
|
||||||
- Added ImageWidget (#139)
|
- Added ImageWidget (#139)
|
||||||
|
|
|
||||||
|
|
@ -23,16 +23,16 @@ namespace Nz
|
||||||
public:
|
public:
|
||||||
HandledObject() = default;
|
HandledObject() = default;
|
||||||
HandledObject(const HandledObject& object);
|
HandledObject(const HandledObject& object);
|
||||||
HandledObject(HandledObject&& object);
|
HandledObject(HandledObject&& object) noexcept;
|
||||||
~HandledObject();
|
~HandledObject();
|
||||||
|
|
||||||
ObjectHandle<T> CreateHandle();
|
ObjectHandle<T> CreateHandle();
|
||||||
|
|
||||||
HandledObject& operator=(const HandledObject& object);
|
HandledObject& operator=(const HandledObject& object);
|
||||||
HandledObject& operator=(HandledObject&& object);
|
HandledObject& operator=(HandledObject&& object) noexcept;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void UnregisterAllHandles();
|
void UnregisterAllHandles() noexcept;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void RegisterHandle(ObjectHandle<T>* handle);
|
void RegisterHandle(ObjectHandle<T>* handle);
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ namespace Nz
|
||||||
* \param object HandledObject to move into this
|
* \param object HandledObject to move into this
|
||||||
*/
|
*/
|
||||||
template<typename T>
|
template<typename T>
|
||||||
HandledObject<T>::HandledObject(HandledObject&& object) :
|
HandledObject<T>::HandledObject(HandledObject&& object) noexcept :
|
||||||
m_handles(std::move(object.m_handles))
|
m_handles(std::move(object.m_handles))
|
||||||
{
|
{
|
||||||
for (ObjectHandle<T>* handle : m_handles)
|
for (ObjectHandle<T>* handle : m_handles)
|
||||||
|
|
@ -84,7 +84,7 @@ namespace Nz
|
||||||
* \param object HandledObject to move in this
|
* \param object HandledObject to move in this
|
||||||
*/
|
*/
|
||||||
template<typename T>
|
template<typename T>
|
||||||
HandledObject<T>& HandledObject<T>::operator=(HandledObject&& object)
|
HandledObject<T>& HandledObject<T>::operator=(HandledObject&& object) noexcept
|
||||||
{
|
{
|
||||||
UnregisterAllHandles();
|
UnregisterAllHandles();
|
||||||
|
|
||||||
|
|
@ -112,7 +112,7 @@ namespace Nz
|
||||||
* \brief Unregisters all handles
|
* \brief Unregisters all handles
|
||||||
*/
|
*/
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void HandledObject<T>::UnregisterAllHandles()
|
void HandledObject<T>::UnregisterAllHandles() noexcept
|
||||||
{
|
{
|
||||||
// Tell every handle we got destroyed, to null them
|
// Tell every handle we got destroyed, to null them
|
||||||
for (ObjectHandle<T>* handle : m_handles)
|
for (ObjectHandle<T>* handle : m_handles)
|
||||||
|
|
|
||||||
|
|
@ -49,8 +49,8 @@ namespace Nz
|
||||||
static const ObjectHandle InvalidHandle;
|
static const ObjectHandle InvalidHandle;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void OnObjectDestroyed();
|
void OnObjectDestroyed() noexcept;
|
||||||
void OnObjectMoved(T* newObject);
|
void OnObjectMoved(T* newObject) noexcept;
|
||||||
|
|
||||||
T* m_object;
|
T* m_object;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -268,7 +268,7 @@ namespace Nz
|
||||||
* \brief Action to do on object destruction
|
* \brief Action to do on object destruction
|
||||||
*/
|
*/
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void ObjectHandle<T>::OnObjectDestroyed()
|
void ObjectHandle<T>::OnObjectDestroyed() noexcept
|
||||||
{
|
{
|
||||||
// Shortcut
|
// Shortcut
|
||||||
m_object = nullptr;
|
m_object = nullptr;
|
||||||
|
|
@ -278,7 +278,7 @@ namespace Nz
|
||||||
* \brief Action to do on object move
|
* \brief Action to do on object move
|
||||||
*/
|
*/
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void ObjectHandle<T>::OnObjectMoved(T* newObject)
|
void ObjectHandle<T>::OnObjectMoved(T* newObject) noexcept
|
||||||
{
|
{
|
||||||
// The object has been moved, update our pointer
|
// The object has been moved, update our pointer
|
||||||
m_object = newObject;
|
m_object = newObject;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue