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

401
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 портов на С++

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

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

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

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

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

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

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

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

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

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

367