I need help understanding the way lambda functions work in order to prevent memory leaks when using them. More specifically, I would like to know when foo will be destroyed in the following case:
void MainWindow::onButtonClicked()
{
QTimer *t(new QTimer(this));
bool foo = false;
t->setSingleShot(true);
t->setInterval(1000);
t->start();
connect(t, &QTimer::timeout, [=](){
delete t;
qDebug() << foo;
});
}
What about the case when [&] is used?