Qt, C++ захват ссылки в асинхронной лямбде

411
22 июля 2022, 09:00

Насколько безопасно так делать?

void wait() const
{
    QEventLoop waiter;
    QTimer timer;
    auto quiter = [&]()
    {
        waiter.quit();
    };
    QObject::connect(&timer, &QTimer::timeout, this, quiter);
    timer.start(1000);
    waiter.exec();
}

Ссылки в лямбде не протухнут на момент сработки таймера? PS: вместо таймера можно подставить любой асинхронный объект, который триггернет лямбду.

READ ALSO
Чтение com портов на С++

Чтение com портов на С++

Есть ардуина и подключенный к ней датчик (какой, роли не играет) он подает данные на ардуино, а она соответственно на пкМне нужно написать...

352
Инициализация вектора объектов (с конструктором, принимающим значения), являющегося членом класса

Инициализация вектора объектов (с конструктором, принимающим значения), являющегося членом класса

Количество объектов класса MCP в векторе _rheos заранее неизвестноstd::vector использую впервые

354
Почему g++-10 не может использовать ключевые слова связанные с корутинами, хотя 20 стандарт включен и необходимый флаг выставлен?

Почему g++-10 не может использовать ключевые слова связанные с корутинами, хотя 20 стандарт включен и необходимый флаг выставлен?

Я попытался использовать ключевые слова из с++20 связанные с корутинами, но компилятор выдает ошибку

294
Создание shared_ptr через make_shared и через new

Создание shared_ptr через make_shared и через new

Создание std::shared_ptr через std::make_shared может быть полезным в следующем случае:

375