Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Move declaration, and keep #include at th top of the file (sonar).
[simgrid.git] / include / xbt / functional.hpp
index f5bf973..145e461 100644 (file)
@@ -162,25 +162,24 @@ public:
 
   Task(Task const&) = delete;
 
-  Task(Task&& that)
+  Task(Task&& that) noexcept
   {
     if (that.vtable_ && that.vtable_->move)
       that.vtable_->move(buffer_, that.buffer_);
     else
       std::memcpy(static_cast<void*>(&buffer_), static_cast<void*>(&that.buffer_), sizeof(buffer_));
-
-    vtable_ = that.vtable_;
+    vtable_      = std::move(that.vtable_);
     that.vtable_ = nullptr;
   }
   Task& operator=(Task const& that) = delete;
-  Task& operator=(Task&& that)
+  Task& operator=(Task&& that) noexcept
   {
     this->clear();
     if (that.vtable_ && that.vtable_->move)
       that.vtable_->move(buffer_, that.buffer_);
     else
       std::memcpy(static_cast<void*>(&buffer_), static_cast<void*>(&that.buffer_), sizeof(buffer_));
-    vtable_ = that.vtable_;
+    vtable_      = std::move(that.vtable_);
     that.vtable_ = nullptr;
     return *this;
   }