From 54cb9fe0fbfc69493f510c37d48b0a2c2d9fd619 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Mon, 30 Dec 2019 14:48:27 +0200 Subject: [PATCH] Fix move semantic. New class. --HG-- branch : develop --- src/libs/vlayout/vbestsquare.cpp | 15 +++++++++++++++ src/libs/vlayout/vbestsquare.h | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/libs/vlayout/vbestsquare.cpp b/src/libs/vlayout/vbestsquare.cpp index 642285bd4..9a2d25c76 100644 --- a/src/libs/vlayout/vbestsquare.cpp +++ b/src/libs/vlayout/vbestsquare.cpp @@ -71,6 +71,21 @@ VBestSquare &VBestSquare::operator=(const VBestSquare &res) return *this; } +#ifdef Q_COMPILER_RVALUE_REFS +//--------------------------------------------------------------------------------------------------------------------- +VBestSquare &VBestSquare::operator=(VBestSquare &&res) Q_DECL_NOTHROW +{ + Swap(res); + return *this; +} +#endif + +//--------------------------------------------------------------------------------------------------------------------- +void VBestSquare::Swap(VBestSquare &res) Q_DECL_NOTHROW +{ + std::swap(d, res.d); +} + //--------------------------------------------------------------------------------------------------------------------- void VBestSquare::NewResult(const VBestSquareResData &data) { diff --git a/src/libs/vlayout/vbestsquare.h b/src/libs/vlayout/vbestsquare.h index c9c3d9699..1423485fd 100644 --- a/src/libs/vlayout/vbestsquare.h +++ b/src/libs/vlayout/vbestsquare.h @@ -49,11 +49,10 @@ public: VBestSquare &operator=(const VBestSquare &res); #ifdef Q_COMPILER_RVALUE_REFS - VBestSquare &operator=(VBestSquare &&res) Q_DECL_NOTHROW { Swap(res); return *this; } + VBestSquare &operator=(VBestSquare &&res) Q_DECL_NOTHROW; #endif - inline void Swap(VBestSquare &res) Q_DECL_NOTHROW - { std::swap(d, res.d); } + void Swap(VBestSquare &res) Q_DECL_NOTHROW; void NewResult(const VBestSquareResData &data); void NewResult(const VBestSquare &best);