summaryrefslogtreecommitdiff
path: root/include/canvas
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2019-08-22 15:42:36 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2019-08-23 11:48:53 +0200
commit63dfd069b3a957361881c12ccba38c5a23b9a42f (patch)
treee7a9bd1027b19f44a7c58ea9c445ded435c838bc /include/canvas
parent61ed17cafc90d9b4303b52260f729638eed107c7 (diff)
Mark move ctors/assignments noexcept
This should enable using move semantics where possible e.g. in standard containers. According to https://en.cppreference.com/w/cpp/language/move_constructor: To make strong exception guarantee possible, user-defined move constructors should not throw exceptions. For example, std::vector relies on std::move_if_noexcept to choose between move and copy when the elements need to be relocated. Change-Id: I6e1e1cdd5cd430b139ffa2fa7031fb0bb625decb Reviewed-on: https://gerrit.libreoffice.org/77957 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'include/canvas')
-rw-r--r--include/canvas/vclwrapper.hxx7
1 files changed, 3 insertions, 4 deletions
diff --git a/include/canvas/vclwrapper.hxx b/include/canvas/vclwrapper.hxx
index 0a80cb282986..3913219143bc 100644
--- a/include/canvas/vclwrapper.hxx
+++ b/include/canvas/vclwrapper.hxx
@@ -78,10 +78,9 @@ namespace canvas
mpWrappee = nullptr;
}
- VCLObject( VCLObject&& rOrig )
- : mpWrappee(rOrig.mpWrappee)
+ VCLObject(VCLObject&& rOrig) noexcept
+ : mpWrappee(std::move(rOrig.mpWrappee))
{
- rOrig.mpWrappee = nullptr;
}
// This object has value semantics, thus, forward copy
@@ -111,7 +110,7 @@ namespace canvas
return *this;
}
- VCLObject& operator=( VCLObject&& rhs )
+ VCLObject& operator=(VCLObject&& rhs) noexcept
{
std::swap(mpWrappee, rhs.mpWrappee);