Когда удаляется объект лямбда-функции?

Программа периодически отсылает запросы по последовательному интерфейсу. Код отправки запроса и приёма ответа выглядит так:

QModbusReply *reply = device->sendReadRequest(dataUnit, trans->getAddress());
QObject::connect(reply, &QModbusReply::finished, [this, reply](){
    //Обработка ответа
});

Этот код выполняется с заданной периодичностью в течение всего времени, пока программа запущена. Поэтому, теоретически, объект лямбда-функции должен создаваться бесконечное количество раз. Так вот когда он удаляется и удаляется ли вообще? Безопасно ли создавать лямбда-функции таким образом?


Ответы (1 шт):

Автор решения: Rafael F.

Лямбда будет удалена, когда будет удален объект reply.

Если вы перейдете к соответствующему определению connect, станет понятно, что в данном случае в качестве объекта получающего сигнал будет выступать этот же объект. введите сюда описание изображения

→ Ссылка