
25.01.2022, 16:42
|
|
Постоянный
Регистрация: 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 - результат выполнения короутины
|
|
|