#pragma once #include static inline void deleteQObjectLater(QObject* qObject) { qObject->deleteLater(); } template using QObject_unique_ptr = std::unique_ptr; template QObject_unique_ptr make_unique(Args&&... args) { return QObject_unique_ptr(new T(std::forward(args)...), &deleteQObjectLater); } template QObject_unique_ptr make_nullptr() { return QObject_unique_ptr(nullptr, &deleteQObjectLater); }