Как стать автором
Обновить
9
0
Илья Подшивалов @Harrowmont

Программист

Корутины в C++20. Часть 2

Время на прочтение 6 мин
Количество просмотров 6.7K
C++ *
Перевод

Введение


Данная статья является продолжением данной статьи.


Бесконечный поток данных при помощи co_yield


Код ниже реализует бесконечный поток данных. Корутина getNext использует co_yield для создания потока данных который начинается со start и выдает по запросу каждое новое значение с шагом step.

Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 11

Корутины в C++20. Часть 1

Время на прочтение 8 мин
Количество просмотров 19K
C++ *
Из песочницы

Введение


Данная статья является переводом главы из книги Райнера Гримма Concurrency with Modern C++, которая является более доработанной и обширной версией статьи на его сайте. Так как весь перевод не умещается в рамках данной статьи, в зависимости от реакции на публикацию, выложу оставшуюся часть.


Корутины


Корутины это функции которые могут приостановить или возобновить свое выполнение при этом сохраняя свое состояние. Эволюция функций в C++ сделала шаг вперед. Корутины с наибольшей вероятностью войдут вошли в C++20.


Идея корутин, представленная как новая в C++20, довольно стара. Понятие корутины было предложено Мелвином Конвеем. Он использовал данное понятие в публикации о разработке компиляторов от 1963. Дональд Кнут называл процедуры частным случаем корутин. Иногда должно пройти время чтобы та или иная идея была принята.

Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 17

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность