Пытаюсь понять работу сопрограмм в с++17
. Что это такое и по что оно нужно - более-менее понятно из ответа к вопросу Сопрограммы в С++
Однако, после рассмотрения ответа к тому вопросу, а так же примера использования сопрограмм, у меня возник ряд вопросов.
Обязана ли сопрограмма возвращать фьючер или же она может не возвращать ничего, а просто иметь внутри себя co_await
, co_yield
или co_return
? Все, что возвращает фьючер, есть сопрограмма?
Каким образом происходит приостановка сопрограммы? Это целиком и полностью работа компилятора по разворачиванию co_await
или же дополнительно к остальному коду предъявляются какие-то требования?
При запуске следующего кода гарантируется ли порядок вывода в консоль значений? Если да, то правильно ли я понимаю, что программа на каждой итерации цикла будет ждать завершения операции вывода? Можно ли в это время выполнять другую полезную работу? Если можно, то хочется увидеть пример.
for (int i = 0; i < 10; ++i)
{
co_await AsyncWrite(i); // Пусть AsyncWrite асинхронно
// выводит переданное ей число в консоль
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Задание:"Реализовать функцию объединения двух mono файлов в один stereo файл, где первый файл является левым каналом, а второй правым каналом выходного...
Есть бинарный файлВ нём нужно найти последовательности байтов по маске:
Как в directx 9 можно сменить размер спрайта ? Точней растянуть его на все окно программыИбо создаю текстуру и в размере ставлю вот эти параметры:
Есть некий процесс с параметрами, который должен корректно запускаться и останавливаться из NT-сервисаПопробовал два варианта его запуска...