Здравствуйте, remark, Вы писали:
R>Здравствуйте, c-smile, Вы писали:
CS>>Используя идею "coroutines in C" Simon Tatham вот родилось следующее решение для C++.
R>Очень занятно. Сам не так давно думал над подобным, но почему-то опрометчиво раньше времени подумал, что в С++ с таким подходом ничего хорошего не выйдет.
"Imagination is more important than knowledge" (C) Альберт.
В том смысле что иногда полезно отвлечься на tiscript какой от голого C++.
R>Тем не менее пока все попытки "сломать" этот код успехом не увенчались. Как минимум выдается варнинг. Пробовал вставлять определение локальной переменной с инициализацией, без инициализации, break.
Да, в c++ в этом смысле даже удачнее получилось чем в C.
R>Кстати, если есть цикл и внутри него ветка case и стоит break, это определено, что break будет относиться к циклу, а не к case?
break относится к ближайшему циклу или switch.
R>Собственно а подумал я, что ничего хорошего не выйдет, т.к. 3 известные мне реализации yield() в С/С++ все страдают серьезными проблемами.
Да, protothreads выглядят симпатично.
Но мой вариант с классом/структурой позволяет не заморачиваться с аллокациями. Да и переменные контекст естественнее выглядят.