Re[28]: Вопрос по корутинам
От: kov_serg Россия  
Дата: 29.08.25 08:22
Оценка:
Здравствуйте, rg45, Вы писали:

R>Здрасьте. О чём мы говорим с самого начала? Ты же заявил
Автор: kov_serg
Дата: 28.08 10:22
, что без корутин "можно спокойно писать точно такой же код. При этом достаточно обычного голого C.". Вот это и сравниваем.


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

// plain C
int fn1_loop(fn1_t *my) {
    LOOP_BEGIN(my->loop)
    my->value="Idle"; LOOP_POINT
    my->value="Started"; LOOP_POINT
    my->value="Processing"; LOOP_POINT
    while (*my->param < 10) {
        self->value="Waiting"; LOOP_POINT
    }
    my->value="Stopped";
    LOOP_END
}

// C с классами
struct fn1_t {
  int st; const char* value; int &param;
  int loop() {
    LOOP_BEGIN(st)
    value="Idle"; LOOP_POINT
    value="Started"; LOOP_POINT
    value="Processing"; LOOP_POINT
    while (param < 10) {
        value="Waiting"; LOOP_POINT
    }
    value="Stopped";
    LOOP_END  
  }
...

И что грандиозные отличия?

_>>Вариант без макросов: https://coliru.stacked-crooked.com/a/4c858ba261a0862d

R>Ну и? Тебе самому-то нравится то, что ты написал?
А почему мне это должно нравиться? Это должно быть просто, работать и легко объяснимо окружащим (,tp extnf htkbubjpys[ afyfnbrjd)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.