From c214251ecff94f167c6e5a2afbfa7572d64b9752 Mon Sep 17 00:00:00 2001 From: Lynix Date: Thu, 24 Sep 2015 12:51:52 +0200 Subject: [PATCH] Update copy/move constructors/operators Former-commit-id: b1faeeae9211a6c0ca29261d46929dc8c66ea0c4 --- include/Nazara/Audio/Sound.hpp | 4 ++++ include/Nazara/Core/Clock.hpp | 3 +++ include/Nazara/Core/HardwareInfo.hpp | 3 +++ include/Nazara/Core/Hashable.hpp | 5 +++++ include/Nazara/Core/Initializer.hpp | 5 +++++ include/Nazara/Core/MemoryStream.hpp | 5 +++++ include/Nazara/Core/ParameterList.hpp | 4 ++-- include/Nazara/Core/PrimitiveList.hpp | 5 +++++ include/Nazara/Core/SparsePtr.hpp | 4 ++-- include/Nazara/Core/Stream.hpp | 5 +++++ include/Nazara/Core/StringStream.hpp | 5 +++++ include/Nazara/Core/Thread.hpp | 2 +- include/Nazara/Graphics/AbstractBackground.hpp | 5 +++++ include/Nazara/Graphics/AbstractViewer.hpp | 5 +++++ include/Nazara/Graphics/Billboard.hpp | 2 ++ include/Nazara/Graphics/ColorBackground.hpp | 4 ++++ include/Nazara/Renderer/Context.hpp | 5 +++++ include/Nazara/Renderer/RenderTarget.hpp | 5 +++++ include/Nazara/Renderer/RenderTexture.hpp | 4 ++-- include/Nazara/Renderer/RenderWindow.hpp | 5 +++++ include/Nazara/Renderer/UberShader.hpp | 5 +++++ include/Nazara/Renderer/UberShaderInstance.hpp | 5 +++++ src/Nazara/Core/ParameterList.cpp | 11 ----------- src/Nazara/Core/Thread.cpp | 2 +- 24 files changed, 89 insertions(+), 19 deletions(-) diff --git a/include/Nazara/Audio/Sound.hpp b/include/Nazara/Audio/Sound.hpp index d875d5460..3381a1ad6 100644 --- a/include/Nazara/Audio/Sound.hpp +++ b/include/Nazara/Audio/Sound.hpp @@ -18,6 +18,7 @@ class NAZARA_AUDIO_API NzSound : public NzSoundEmitter NzSound() = default; NzSound(const NzSoundBuffer* soundBuffer); NzSound(const NzSound& sound); + NzSound(NzSound&&) = default; ~NzSound(); void EnableLooping(bool loop); @@ -43,6 +44,9 @@ class NAZARA_AUDIO_API NzSound : public NzSoundEmitter void Stop(); + NzSound& operator=(const NzSound&) = delete; ///TODO? + NzSound& operator=(NzSound&&) = default; + private: NzSoundBufferConstRef m_buffer; }; diff --git a/include/Nazara/Core/Clock.hpp b/include/Nazara/Core/Clock.hpp index 8eac3c2db..82e30e009 100644 --- a/include/Nazara/Core/Clock.hpp +++ b/include/Nazara/Core/Clock.hpp @@ -20,6 +20,8 @@ class NAZARA_CORE_API NzClock public: NzClock(nzUInt64 startingValue = 0, bool paused = false); NzClock(const NzClock& clock) = default; + NzClock(NzClock&& clock) = default; + ~NzClock() = default; float GetSeconds() const; nzUInt64 GetMicroseconds() const; @@ -32,6 +34,7 @@ class NAZARA_CORE_API NzClock void Unpause(); NzClock& operator=(const NzClock& clock) = default; + NzClock& operator=(NzClock&& clock) = default; private: NazaraMutexAttrib(m_mutex, mutable) diff --git a/include/Nazara/Core/HardwareInfo.hpp b/include/Nazara/Core/HardwareInfo.hpp index bbdf704f7..ec844e6b2 100644 --- a/include/Nazara/Core/HardwareInfo.hpp +++ b/include/Nazara/Core/HardwareInfo.hpp @@ -14,6 +14,9 @@ class NAZARA_CORE_API NzHardwareInfo { public: + NzHardwareInfo() = delete; + ~NzHardwareInfo() = delete; + static void Cpuid(nzUInt32 functionId, nzUInt32 subFunctionId, nzUInt32 result[4]); static NzString GetProcessorBrandString(); diff --git a/include/Nazara/Core/Hashable.hpp b/include/Nazara/Core/Hashable.hpp index 45f29dab1..d46773674 100644 --- a/include/Nazara/Core/Hashable.hpp +++ b/include/Nazara/Core/Hashable.hpp @@ -19,11 +19,16 @@ class NAZARA_CORE_API NzHashable public: NzHashable() = default; + NzHashable(const NzHashable&) = default; + NzHashable(NzHashable&&) = default; virtual ~NzHashable(); NzHashDigest GetHash(nzHash hash) const; NzHashDigest GetHash(NzAbstractHash* impl) const; + NzHashable& operator=(const NzHashable&) = default; + NzHashable& operator=(NzHashable&&) = default; + private: virtual bool FillHash(NzAbstractHash* impl) const = 0; }; diff --git a/include/Nazara/Core/Initializer.hpp b/include/Nazara/Core/Initializer.hpp index 64081f891..c7a8109f6 100644 --- a/include/Nazara/Core/Initializer.hpp +++ b/include/Nazara/Core/Initializer.hpp @@ -14,6 +14,8 @@ class NzInitializer { public: NzInitializer(bool initialize = true); + NzInitializer(const NzInitializer&) = delete; + NzInitializer(NzInitializer&&) = delete; ///TODO ~NzInitializer(); bool Initialize(); @@ -22,6 +24,9 @@ class NzInitializer operator bool() const; + NzInitializer& operator=(const NzInitializer&) = delete; + NzInitializer& operator=(NzInitializer&&) = delete; ///TODO + private: bool m_initialized; }; diff --git a/include/Nazara/Core/MemoryStream.hpp b/include/Nazara/Core/MemoryStream.hpp index 11d9a7827..20ca52997 100644 --- a/include/Nazara/Core/MemoryStream.hpp +++ b/include/Nazara/Core/MemoryStream.hpp @@ -14,6 +14,8 @@ class NAZARA_CORE_API NzMemoryStream : public NzInputStream { public: NzMemoryStream(const void* ptr, nzUInt64 size); + NzMemoryStream(const NzMemoryStream&) = delete; + NzMemoryStream(NzMemoryStream&&) = delete; ///TODO ~NzMemoryStream(); bool EndOfStream() const; @@ -25,6 +27,9 @@ class NAZARA_CORE_API NzMemoryStream : public NzInputStream bool SetCursorPos(nzUInt64 offset); + NzMemoryStream& operator=(const NzMemoryStream&) = delete; + NzMemoryStream& operator=(NzMemoryStream&&) = delete; ///TODO + private: const nzUInt8* m_ptr; nzUInt64 m_pos; diff --git a/include/Nazara/Core/ParameterList.hpp b/include/Nazara/Core/ParameterList.hpp index a3dbcb197..9f3326fbe 100644 --- a/include/Nazara/Core/ParameterList.hpp +++ b/include/Nazara/Core/ParameterList.hpp @@ -19,7 +19,7 @@ class NAZARA_CORE_API NzParameterList NzParameterList() = default; NzParameterList(const NzParameterList& list); - NzParameterList(NzParameterList&& list); + NzParameterList(NzParameterList&&) = default; ~NzParameterList(); void Clear(); @@ -46,7 +46,7 @@ class NAZARA_CORE_API NzParameterList void SetParameter(const NzString& name, int value); NzParameterList& operator=(const NzParameterList& list); - NzParameterList& operator=(NzParameterList&& list); + NzParameterList& operator=(NzParameterList&&) = default; private: struct Parameter diff --git a/include/Nazara/Core/PrimitiveList.hpp b/include/Nazara/Core/PrimitiveList.hpp index 8d48e8953..5ddb6b21b 100644 --- a/include/Nazara/Core/PrimitiveList.hpp +++ b/include/Nazara/Core/PrimitiveList.hpp @@ -15,6 +15,8 @@ class NAZARA_CORE_API NzPrimitiveList { public: NzPrimitiveList() = default; + NzPrimitiveList(const NzPrimitiveList&) = default; + NzPrimitiveList(NzPrimitiveList&&) = default; ~NzPrimitiveList() = default; void AddBox(const NzVector3f& lengths, const NzVector3ui& subdivision = NzVector3ui(0U), const NzMatrix4f& transformMatrix = NzMatrix4f::Identity()); @@ -35,6 +37,9 @@ class NAZARA_CORE_API NzPrimitiveList const NzPrimitive& GetPrimitive(unsigned int i) const; unsigned int GetSize() const; + NzPrimitiveList& operator=(const NzPrimitiveList&) = default; + NzPrimitiveList& operator=(NzPrimitiveList&&) = default; + NzPrimitive& operator()(unsigned int i); const NzPrimitive& operator()(unsigned int i) const; diff --git a/include/Nazara/Core/SparsePtr.hpp b/include/Nazara/Core/SparsePtr.hpp index 65016432f..5652502da 100644 --- a/include/Nazara/Core/SparsePtr.hpp +++ b/include/Nazara/Core/SparsePtr.hpp @@ -45,6 +45,8 @@ class NzSparsePtr T* operator->() const; T& operator[](int index) const; + NzSparsePtr& operator=(const NzSparsePtr& ptr) = default; + NzSparsePtr operator+(int count) const; NzSparsePtr operator+(unsigned int count) const; NzSparsePtr operator-(int count) const; @@ -67,8 +69,6 @@ class NzSparsePtr bool operator<=(const NzSparsePtr& ptr) const; bool operator>=(const NzSparsePtr& ptr) const; - NzSparsePtr& operator=(const NzSparsePtr& ptr) = default; - private: BytePtr m_ptr; int m_stride; diff --git a/include/Nazara/Core/Stream.hpp b/include/Nazara/Core/Stream.hpp index 54c1d5b94..8a744b7ac 100644 --- a/include/Nazara/Core/Stream.hpp +++ b/include/Nazara/Core/Stream.hpp @@ -15,6 +15,8 @@ class NAZARA_CORE_API NzStream { public: NzStream() = default; + NzStream(const NzStream&) = default; + NzStream(NzStream&&) = default; virtual ~NzStream(); virtual nzUInt64 GetCursorPos() const = 0; @@ -25,6 +27,9 @@ class NAZARA_CORE_API NzStream virtual bool SetCursorPos(nzUInt64 offset) = 0; void SetStreamOptions(unsigned int options); + NzStream& operator=(const NzStream&) = default; + NzStream& operator=(NzStream&&) = default; + protected: unsigned int m_streamOptions = 0; }; diff --git a/include/Nazara/Core/StringStream.hpp b/include/Nazara/Core/StringStream.hpp index 906cdafce..da9521b35 100644 --- a/include/Nazara/Core/StringStream.hpp +++ b/include/Nazara/Core/StringStream.hpp @@ -17,9 +17,14 @@ class NAZARA_CORE_API NzStringStream public: NzStringStream(); NzStringStream(const NzString& str); + NzStringStream(const NzStringStream&) = default; + NzStringStream(NzStringStream&&) noexcept = default; NzString ToString() const; + NzStringStream& operator=(const NzStringStream&) = default; + NzStringStream& operator=(NzStringStream&&) noexcept = default; + NzStringStream& operator<<(bool boolean); NzStringStream& operator<<(short number); NzStringStream& operator<<(unsigned short number); diff --git a/include/Nazara/Core/Thread.hpp b/include/Nazara/Core/Thread.hpp index cb77862ea..5be32e7ad 100644 --- a/include/Nazara/Core/Thread.hpp +++ b/include/Nazara/Core/Thread.hpp @@ -23,7 +23,7 @@ class NAZARA_CORE_API NzThread template NzThread(F function, Args&&... args); template NzThread(void (C::*function)(), C* object); NzThread(const NzThread&) = delete; - NzThread(NzThread&& other); + NzThread(NzThread&& other) noexcept; ~NzThread(); void Detach(); diff --git a/include/Nazara/Graphics/AbstractBackground.hpp b/include/Nazara/Graphics/AbstractBackground.hpp index b557ee871..3d57462e0 100644 --- a/include/Nazara/Graphics/AbstractBackground.hpp +++ b/include/Nazara/Graphics/AbstractBackground.hpp @@ -24,12 +24,17 @@ class NAZARA_GRAPHICS_API NzAbstractBackground : public NzRefCounted { public: NzAbstractBackground() = default; + NzAbstractBackground(const NzAbstractBackground&) = default; + NzAbstractBackground(NzAbstractBackground&&) = delete; virtual ~NzAbstractBackground(); virtual void Draw(const NzAbstractViewer* viewer) const = 0; virtual nzBackgroundType GetBackgroundType() const = 0; + NzAbstractBackground& operator=(const NzAbstractBackground&) = default; + NzAbstractBackground& operator=(NzAbstractBackground&&) = delete; + private: static NzBackgroundLibrary::LibraryMap s_library; }; diff --git a/include/Nazara/Graphics/AbstractViewer.hpp b/include/Nazara/Graphics/AbstractViewer.hpp index 9ca7c7f77..c6baa1675 100644 --- a/include/Nazara/Graphics/AbstractViewer.hpp +++ b/include/Nazara/Graphics/AbstractViewer.hpp @@ -21,6 +21,8 @@ class NAZARA_GRAPHICS_API NzAbstractViewer { public: NzAbstractViewer() = default; + NzAbstractViewer(const NzAbstractViewer&) = default; + NzAbstractViewer(NzAbstractViewer&&) noexcept = default; virtual ~NzAbstractViewer(); virtual void ApplyView() const = 0; @@ -35,6 +37,9 @@ class NAZARA_GRAPHICS_API NzAbstractViewer virtual const NzRecti& GetViewport() const = 0; virtual float GetZFar() const = 0; virtual float GetZNear() const = 0; + + NzAbstractViewer& operator=(const NzAbstractViewer&) = default; + NzAbstractViewer& operator=(NzAbstractViewer&&) noexcept = default; }; #endif // NAZARA_ABSTRACTVIEWER_HPP diff --git a/include/Nazara/Graphics/Billboard.hpp b/include/Nazara/Graphics/Billboard.hpp index 037044c21..495ad403a 100644 --- a/include/Nazara/Graphics/Billboard.hpp +++ b/include/Nazara/Graphics/Billboard.hpp @@ -24,6 +24,7 @@ class NAZARA_GRAPHICS_API NzBillboard : public NzInstancedRenderable inline NzBillboard(NzMaterialRef material); inline NzBillboard(NzTexture* texture); inline NzBillboard(const NzBillboard& billboard); + NzBillboard(NzBillboard&&) = delete; ~NzBillboard() = default; void AddToRenderQueue(NzAbstractRenderQueue* renderQueue, const InstanceData& instanceData) const override; @@ -42,6 +43,7 @@ class NAZARA_GRAPHICS_API NzBillboard : public NzInstancedRenderable inline void SetTexture(NzTextureRef texture, bool resizeBillboard = true); inline NzBillboard& operator=(const NzBillboard& billboard); + NzBillboard& operator=(NzBillboard&&) = delete; template static NzBillboardRef New(Args&&... args); diff --git a/include/Nazara/Graphics/ColorBackground.hpp b/include/Nazara/Graphics/ColorBackground.hpp index c769ba15d..c1f541552 100644 --- a/include/Nazara/Graphics/ColorBackground.hpp +++ b/include/Nazara/Graphics/ColorBackground.hpp @@ -21,6 +21,8 @@ class NAZARA_GRAPHICS_API NzColorBackground : public NzAbstractBackground { public: NzColorBackground(const NzColor& color = NzColor::Black); + NzColorBackground(const NzColorBackground&) = default; + NzColorBackground(NzColorBackground&&) = delete; void Draw(const NzAbstractViewer* viewer) const; @@ -29,6 +31,8 @@ class NAZARA_GRAPHICS_API NzColorBackground : public NzAbstractBackground void SetColor(const NzColor& color); + NzColorBackground& operator=(NzColorBackground&&) = delete; + template static NzColorBackgroundRef New(Args&&... args); private: diff --git a/include/Nazara/Renderer/Context.hpp b/include/Nazara/Renderer/Context.hpp index a258746b1..1813a62aa 100644 --- a/include/Nazara/Renderer/Context.hpp +++ b/include/Nazara/Renderer/Context.hpp @@ -32,6 +32,8 @@ class NAZARA_RENDERER_API NzContext : public NzRefCounted public: NzContext() = default; + NzContext(const NzContext&) = delete; + NzContext(NzContext&&) = delete; ~NzContext(); bool Create(const NzContextParameters& parameters = NzContextParameters()); @@ -47,6 +49,9 @@ class NAZARA_RENDERER_API NzContext : public NzRefCounted bool SetActive(bool active) const; void SwapBuffers(); + NzContext& operator=(const NzContext&) = delete; + NzContext& operator=(NzContext&&) = delete; + static bool EnsureContext(); static const NzContext* GetCurrent(); diff --git a/include/Nazara/Renderer/RenderTarget.hpp b/include/Nazara/Renderer/RenderTarget.hpp index 2e9be52a7..25392bd9a 100644 --- a/include/Nazara/Renderer/RenderTarget.hpp +++ b/include/Nazara/Renderer/RenderTarget.hpp @@ -21,6 +21,8 @@ class NAZARA_RENDERER_API NzRenderTarget public: NzRenderTarget() = default; + NzRenderTarget(const NzRenderTarget&) = delete; + NzRenderTarget(NzRenderTarget&&) = delete; ///TOOD? virtual ~NzRenderTarget(); virtual unsigned int GetHeight() const = 0; @@ -35,6 +37,9 @@ class NAZARA_RENDERER_API NzRenderTarget // Fonctions OpenGL virtual bool HasContext() const = 0; + NzRenderTarget& operator=(const NzRenderTarget&) = delete; + NzRenderTarget& operator=(NzRenderTarget&&) = delete; ///TOOD? + // Signals: NazaraSignal(OnRenderTargetParametersChange, const NzRenderTarget* /*renderTarget*/); NazaraSignal(OnRenderTargetRelease, const NzRenderTarget* /*renderTarget*/); diff --git a/include/Nazara/Renderer/RenderTexture.hpp b/include/Nazara/Renderer/RenderTexture.hpp index 2aa872122..087061b75 100644 --- a/include/Nazara/Renderer/RenderTexture.hpp +++ b/include/Nazara/Renderer/RenderTexture.hpp @@ -27,7 +27,7 @@ class NAZARA_RENDERER_API NzRenderTexture : public NzRenderTarget public: inline NzRenderTexture(); NzRenderTexture(const NzRenderTexture&) = delete; - NzRenderTexture(NzRenderTexture&&) = delete; ///TODO + NzRenderTexture(NzRenderTexture&&) = delete; ///TODO? inline ~NzRenderTexture(); bool AttachBuffer(nzAttachmentPoint attachmentPoint, nzUInt8 index, NzRenderBuffer* buffer); @@ -61,7 +61,7 @@ class NAZARA_RENDERER_API NzRenderTexture : public NzRenderTarget bool HasContext() const override; NzRenderTexture& operator=(const NzRenderTexture&) = delete; - NzRenderTexture& operator=(NzRenderTexture&&) = delete; ///TODO + NzRenderTexture& operator=(NzRenderTexture&&) = delete; ///TODO? static inline void Blit(NzRenderTexture* src, NzRenderTexture* dst, nzUInt32 buffers = nzRendererBuffer_Color | nzRendererBuffer_Depth | nzRendererBuffer_Stencil, bool bilinearFilter = false); static void Blit(NzRenderTexture* src, NzRectui srcRect, NzRenderTexture* dst, NzRectui dstRect, nzUInt32 buffers = nzRendererBuffer_Color | nzRendererBuffer_Depth | nzRendererBuffer_Stencil, bool bilinearFilter = false); diff --git a/include/Nazara/Renderer/RenderWindow.hpp b/include/Nazara/Renderer/RenderWindow.hpp index 05d1c0163..e6db97e34 100644 --- a/include/Nazara/Renderer/RenderWindow.hpp +++ b/include/Nazara/Renderer/RenderWindow.hpp @@ -30,6 +30,8 @@ class NAZARA_RENDERER_API NzRenderWindow : public NzRenderTarget, public NzWindo NzRenderWindow() = default; NzRenderWindow(NzVideoMode mode, const NzString& title, nzUInt32 style = nzWindowStyle_Default, const NzContextParameters& parameters = NzContextParameters()); NzRenderWindow(NzWindowHandle handle, const NzContextParameters& parameters = NzContextParameters()); + NzRenderWindow(const NzRenderWindow&) = delete; + NzRenderWindow(NzRenderWindow&&) = delete; ///TODO virtual ~NzRenderWindow(); bool CopyToImage(NzAbstractImage* image, const NzVector3ui& dstPos = NzVector3ui(0U)) const; @@ -55,6 +57,9 @@ class NAZARA_RENDERER_API NzRenderWindow : public NzRenderTarget, public NzWindo NzContextParameters GetContextParameters() const; bool HasContext() const override; + NzRenderWindow& operator=(const NzRenderWindow&) = delete; + NzRenderWindow& operator=(NzRenderWindow&&) = delete; ///TODO + protected: bool Activate() const override; void EnsureTargetUpdated() const override; diff --git a/include/Nazara/Renderer/UberShader.hpp b/include/Nazara/Renderer/UberShader.hpp index 99258223e..c6df6f915 100644 --- a/include/Nazara/Renderer/UberShader.hpp +++ b/include/Nazara/Renderer/UberShader.hpp @@ -28,10 +28,15 @@ class NAZARA_RENDERER_API NzUberShader : public NzRefCounted public: NzUberShader() = default; + NzUberShader(const NzUberShader&) = delete; + NzUberShader(NzUberShader&&) = delete; virtual ~NzUberShader(); virtual NzUberShaderInstance* Get(const NzParameterList& parameters) const = 0; + NzUberShader& operator=(const NzUberShader&) = delete; + NzUberShader& operator=(NzUberShader&&) = delete; + // Signals: NazaraSignal(OnUberShaderRelease, const NzUberShader* /*uberShader*/); diff --git a/include/Nazara/Renderer/UberShaderInstance.hpp b/include/Nazara/Renderer/UberShaderInstance.hpp index d531d1926..e56f13d2f 100644 --- a/include/Nazara/Renderer/UberShaderInstance.hpp +++ b/include/Nazara/Renderer/UberShaderInstance.hpp @@ -14,12 +14,17 @@ class NAZARA_RENDERER_API NzUberShaderInstance { public: NzUberShaderInstance(const NzShader* shader); + NzUberShaderInstance(const NzUberShaderInstance&) = delete; + NzUberShaderInstance(NzUberShaderInstance&&) = delete; virtual ~NzUberShaderInstance(); virtual bool Activate() const = 0; const NzShader* GetShader() const; + NzUberShaderInstance& operator=(const NzUberShaderInstance&) = delete; + NzUberShaderInstance& operator=(NzUberShaderInstance&&) = delete; + protected: NzShaderConstRef m_shader; }; diff --git a/src/Nazara/Core/ParameterList.cpp b/src/Nazara/Core/ParameterList.cpp index 3add83482..663deafe2 100644 --- a/src/Nazara/Core/ParameterList.cpp +++ b/src/Nazara/Core/ParameterList.cpp @@ -15,11 +15,6 @@ NzParameterList::NzParameterList(const NzParameterList& list) operator=(list); } -NzParameterList::NzParameterList(NzParameterList&& list) : -m_parameters(std::move(list.m_parameters)) -{ -} - NzParameterList::~NzParameterList() { Clear(); @@ -421,12 +416,6 @@ NzParameterList& NzParameterList::operator=(const NzParameterList& list) return *this; } -NzParameterList& NzParameterList::operator=(NzParameterList&& list) -{ - m_parameters = std::move(list.m_parameters); - return *this; -} - void NzParameterList::DestroyValue(Parameter& parameter) { switch (parameter.type) diff --git a/src/Nazara/Core/Thread.cpp b/src/Nazara/Core/Thread.cpp index a25a6546e..a31025d68 100644 --- a/src/Nazara/Core/Thread.cpp +++ b/src/Nazara/Core/Thread.cpp @@ -24,7 +24,7 @@ m_impl(nullptr) { } -NzThread::NzThread(NzThread&& other) : +NzThread::NzThread(NzThread&& other) noexcept : m_impl(other.m_impl) { other.m_impl = nullptr;