Показать сообщение отдельно

  #1  
Старый 25.01.2022, 16:42
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

Описание:Stackful короутина - подпрограмма которая имеет свой контекст выполнения и может быть приостановлена из любой вложенной функции. "Библиотека" позволяет программно переключать контекст выполнения. Проще говоря, вы можете прервать выполнение своей функции в любой момент и перейти к выполнению другой. Это очень полезно, когда нужно избежать ожидания.

Пример:

v1​
v2​


C++:





Код:
coroutine
outer
(
[
]
(
coroutine
&
inner
)
{
printf
(
"1"
)
;
inner
.
yield
(
)
;
// приостанавливаем функцию
printf
(
"3"
)
;
}
)
;
outer
.
resume
(
)
;
// запускаем функцию
printf
(
"2"
)
;
outer
.
resume
(
)
;
// переходим обратно к функции
printf
(
"4"
)
;




C++:





[CODE]
std
::
string text
{
""
}
;
coroutine

outer
(
[
]
(
auto
&
inner
,
std
::
string
&
input
)
{
for
(
int
i
=
0
;
i




Цитата:
Сообщение от Спойлер  

Появилось:
  • Теперь single-header library​
  • Аргументы в функторах с поддержкой ссылок​
  • is_finished - завершена ли короутина​
  • get_result - результат выполнения короутины​
 
Ответить с цитированием