X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcommon%2Fdeferredptr.h;h=21cfcb731d0bbfa08e987ffc0d98d51e154d1345;hb=c1cf157116de7fc3da96203aa6f03c38c7ebb650;hp=e04fb97626af0b381aaa1659afb853861b32c3d1;hpb=68878dc8366f2f4a0afe132847aad9a51a80cdbf;p=quassel.git diff --git a/src/common/deferredptr.h b/src/common/deferredptr.h index e04fb976..21cfcb73 100644 --- a/src/common/deferredptr.h +++ b/src/common/deferredptr.h @@ -20,6 +20,8 @@ #pragma once +#include "common-export.h" + #include #include @@ -33,15 +35,17 @@ namespace detail { * QObject should always be deleted by calling deleteLater() on them, so the event loop can * perform necessary cleanups. */ -struct DeferredDeleter { +struct DeferredDeleter +{ /// Deletes the given QObject - void operator()(QObject *object) const { + void operator()(QObject* object) const + { if (object) object->deleteLater(); } }; -} // detail +} // namespace detail /** * Unique pointer for QObjects with deferred deletion @@ -51,7 +55,6 @@ struct DeferredDeleter { template using DeferredUniquePtr = std::unique_ptr; - /** * Helper function for creating a DeferredUniquePtr * @@ -63,14 +66,13 @@ using DeferredUniquePtr = std::unique_ptr; * @param[in] args Constructor arguments * @returns A DeferredUniquePtr holding a new instance of T */ -template +template DeferredUniquePtr makeDeferredUnique(Args... args) { static_assert(std::is_base_of::value, "Type must inherit from QObject"); return DeferredUniquePtr(new T(std::forward(args)...)); } - /** * Shared pointer for QObjects with deferred deletion * @@ -79,7 +81,6 @@ DeferredUniquePtr makeDeferredUnique(Args... args) template using DeferredSharedPtr = std::shared_ptr; - /** * Helper function for creating a DeferredSharedPtr * @@ -91,7 +92,7 @@ using DeferredSharedPtr = std::shared_ptr; * @param[in] args Constructor arguments * @returns A DeferredSharedPtr holding a new instance of T */ -template +template DeferredSharedPtr makeDeferredShared(Args... args) { static_assert(std::is_base_of::value, "Type must inherit from QObject");