blob: e6f9395a6b5569f0386c4ecf745cd9e59417a120 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#pragma once
#include <QObject>
static inline void deleteQObjectLater(QObject* qObject) { qObject->deleteLater(); }
template <typename T>
using QObject_unique_ptr = std::unique_ptr<T, decltype(&deleteQObjectLater)>;
template <typename T, typename... Args>
QObject_unique_ptr<T> make_unique(Args&&... args)
{
return QObject_unique_ptr<T>(new T(std::forward<Args>(args)...), &deleteQObjectLater);
}
template <typename T>
QObject_unique_ptr<T> make_nullptr()
{
return QObject_unique_ptr<T>(nullptr, &deleteQObjectLater);
}
|