C++ 协程生命周期陷阱:引用捕获与悬空对象
背景 C++ 协程常见 bug 之一是对象在挂起后已经销毁,但恢复时仍被访问。 典型风险 捕获局部引用并跨 suspend 使用 返回协程句柄后调用方提前释放上下文 Task<void> foo() { std::string buf = "hello"; co_await suspend_point(); use(buf); // 若生命周期判断错,这里会出问题 } 总结 协程代码要像异步状态机一样审生命周期,别按同步函数直觉来读。 控制流变了,生命周期审计方式也必须跟着变。