X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fdeferredptr.h;h=07c1d6860ffea81f6ffc107ef17689de68ad1088;hp=e04fb97626af0b381aaa1659afb853861b32c3d1;hb=579e559a6322209df7cd51c34801fecff5fe734b;hpb=68878dc8366f2f4a0afe132847aad9a51a80cdbf diff --git a/src/common/deferredptr.h b/src/common/deferredptr.h index e04fb976..07c1d686 100644 --- a/src/common/deferredptr.h +++ b/src/common/deferredptr.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 by the Quassel Project * + * Copyright (C) 2005-2019 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -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");