Re[5]: Вопрос по корутинам
От: landerhigh Пират  
Дата: 27.08.25 21:09
Оценка:
Здравствуйте, rg45, Вы писали:

R>Офигенная машина состояний. Паровоз Черепановых нервно пыхтит в коридоре


Да. Стоит немного усложнить:

#include <generator>
#include <iostream>
#include <string>

std::generator<std::string> runMachine(int& param) {
    co_yield "Idle";
    co_yield "Started";
    co_yield "Processing";
    while (param < 10)
    {
        co_yield "Waiting";
    }
    co_yield "Stopped";
}

int main() {
    int iValue = 0;
    for (const std::string& state : runMachine(iValue))
    {
        ++iValue;
        std::cout << "State: " << state << std::endl;
    }
}


Вот так спагетти колбеков можно спокойно завернуть в корутину.
Вместо int& param вверху передается некий ServerInterface и вперед.
www.blinnov.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.