diff --git a/libs/utils/include/utils/Invocable.h b/libs/utils/include/utils/Invocable.h index d2f69c3655..49b4307181 100644 --- a/libs/utils/include/utils/Invocable.h +++ b/libs/utils/include/utils/Invocable.h @@ -62,7 +62,7 @@ public: // Creates an Invocable from the functor passed in. template = 0> - Invocable(Fn&& fn) noexcept; + Invocable(Fn&& fn) noexcept; // NOLINT(google-explicit-constructor) Invocable(const Invocable&) = delete; Invocable(Invocable&& rhs) noexcept; @@ -121,12 +121,9 @@ Invocable::Invocable(Invocable&& rhs) noexcept template Invocable& Invocable::operator=(Invocable&& rhs) noexcept { if (this != &rhs) { - mInvocable = rhs.mInvocable; - mDeleter = rhs.mDeleter; - mInvoker = rhs.mInvoker; - rhs.mInvocable = nullptr; - rhs.mDeleter = nullptr; - rhs.mInvoker = nullptr; + std::swap(mInvocable, rhs.mInvocable); + std::swap(mDeleter, rhs.mDeleter); + std::swap(mInvoker, rhs.mInvoker); } return *this; }