我想知道,如果恢复尚未完成的协程时,从couroutine外部获取其栈中某个变量的引用是合法的。单向Boost.coroutine:合法获取对悬挂上的堆栈变量的引用吗?
像这样:
coroutine<void>::pull_type myclass::my_func() {
auto coro = [this](coroutine<void>::push_type & sink) {
auto myvar = 25;
this->do_something_with_my_var_by_ref_when_suspended(myvar);
sink();
while (1) {
//...
sink();
}
};
}
auto coro = this->myfunc();
//Here myvar from coro is being used but coro is suspended.
//Will myvar be valid? coro is not finished yet.
this->do_something_with_myvar_when_coro_suspended();
感谢您的时间
我想知道为什么我对此投反对票的原因是什么。 –