10#include <QCoreApplication>
15template <
typename Func1>
16inline void TimerSingleShot(
int msec, Func1 slot)
18#if QT_VERSION >= 0x050500
19 QTimer::singleShot(msec, slot);
21 QTimer *timer =
new QTimer;
22 timer->setSingleShot(
true);
23 timer->setInterval(msec);
24 timer->moveToThread(qApp->thread());
25 QObject::connect(timer, &QTimer::timeout, slot);
26 QObject::connect(timer, &QTimer::timeout, timer, &QTimer::deleteLater);
27 if (QThread::currentThread() == qApp->thread()) { timer->start(); }
28 else { QMetaObject::invokeMethod(timer,
"start", Qt::QueuedConnection); }
33void SecureErase(T *p,
size_t size)
39void SecureErase(T &obj)
41 for (
typename T::iterator i = obj.begin(); i != obj.end(); ++i) {