Здравствуйте, 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 ¶m;
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)