23#include <QCoreApplication>
28template <
typename Func1>
29inline void TimerSingleShot(
int msec, Func1 slot)
31#if QT_VERSION >= 0x050500
32 QTimer::singleShot(msec, slot);
34 QTimer *timer =
new QTimer;
35 timer->setSingleShot(
true);
36 timer->setInterval(msec);
37 timer->moveToThread(qApp->thread());
38 QObject::connect(timer, &QTimer::timeout, slot);
39 QObject::connect(timer, &QTimer::timeout, timer, &QTimer::deleteLater);
40 if (QThread::currentThread() == qApp->thread()) { timer->start(); }
41 else { QMetaObject::invokeMethod(timer,
"start", Qt::QueuedConnection); }
46void SecureErase(T *p,
size_t size)
52void SecureErase(T &obj)
54 for (
typename T::iterator i = obj.begin(); i != obj.end(); ++i) {