summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMurray Cumming <murrayc@murrayc.com>2017-04-21 14:56:47 +0200
committerMurray Cumming <murrayc@murrayc.com>2017-07-21 08:20:58 +0200
commit4824bb537db4c5946ff495a4a9461aa99b43675a (patch)
tree278c83e67a433620bd56a42f5809ed6a67759586
parent54dcd80c12322b04117a94af1bb62e3a84412e1b (diff)
downloadsigc++-4824bb537db4c5946ff495a4a9461aa99b43675a.tar.gz
trackable: Make move operations noexcept.
I don't think there is any reason not to. Noticed by clang-tidy.
-rw-r--r--sigc++/trackable.cc5
-rw-r--r--sigc++/trackable.h4
-rw-r--r--tests/test_trackable_move.cc5
3 files changed, 9 insertions, 5 deletions
diff --git a/sigc++/trackable.cc b/sigc++/trackable.cc
index 5020bc9..8ee8ee4 100644
--- a/sigc++/trackable.cc
+++ b/sigc++/trackable.cc
@@ -38,7 +38,8 @@ trackable::trackable(const trackable& /*src*/) noexcept : callback_list_(nullptr
//
// If trackable's move constructor is modified, check if Glib::Object's
// move constructor should be modified similarly.
-trackable::trackable(trackable&& src) : callback_list_(nullptr)
+trackable::trackable(trackable&& src) noexcept
+: callback_list_(nullptr)
{
src.notify_callbacks();
}
@@ -53,7 +54,7 @@ trackable::operator=(const trackable& src)
}
trackable&
-trackable::operator=(trackable&& src)
+trackable::operator=(trackable&& src) noexcept
{
if (this != &src)
{
diff --git a/sigc++/trackable.h b/sigc++/trackable.h
index a6a7829..d26ba61 100644
--- a/sigc++/trackable.h
+++ b/sigc++/trackable.h
@@ -125,11 +125,11 @@ struct SIGC_API trackable : public notifiable
trackable(const trackable& src) noexcept;
- trackable(trackable&& src);
+ trackable(trackable&& src) noexcept;
trackable& operator=(const trackable& src);
- trackable& operator=(trackable&& src);
+ trackable& operator=(trackable&& src) noexcept;
~trackable();
diff --git a/tests/test_trackable_move.cc b/tests/test_trackable_move.cc
index 24ec47b..90e3aa2 100644
--- a/tests/test_trackable_move.cc
+++ b/tests/test_trackable_move.cc
@@ -18,7 +18,10 @@ public:
my_class(const my_class& src) = delete;
my_class& operator=(const my_class& src) = delete;
- my_class(my_class&& src) : sigc::trackable(std::move(src)), i(std::move(src.i)) { src.i = 0; }
+ my_class(my_class&& src) noexcept
+ : sigc::trackable(std::move(src)), i(std::move(src.i)) {
+ src.i = 0;
+ }
my_class& operator=(my_class&& src)
{