C++ (Qt)while (true) { // хз умеет ли возвращать co_await IsMouseStillDown(); if (releaseMouseFlag) break;
auto initial_suspend() { return std::suspend_always(); }
auto t = foo(); // не делает ничего, просто создает объект корутины (окей, это относительно тяжелая операция)t.resume(); // напечатает "hello"t.resume(); // напечатает "World"
C++ (Qt)while (true) { qDebug() << "entering loop"; co_await qtcoro::make_awaitable_signal(changeTimer, &QTimer::timeout); qDebug() << "awaited"; cr.changeColor();}
C++ (Qt)bool MyFilter::eventFilter( QObject * obj, QEvent * e ){ switch (e->type()) { ... case QEvent::MouseMoved: m_drag.resume(); return true; ... }}
C++ (Qt)void MyDrag( void ){ ... while (true) { ... co_yield; // ждем пока не вызовет одно из событий // тело драга QPoint pt = GetMousePosition(); if (pt == oldPt) continue; DoDrag(pt); oldPt = pt; }}}
C++ (Qt)value = FindFirst(&findData);while (!value.IsEmpty()) { ProcessValue(value); value = FindNext(&findData);}