[英]Passing boost.coroutine through function arguments
好吧,我的問題是正確地將boost::coroutines::coroutine<std::string(void)>
對象作為函數參數傳遞。 我無法通過引用做到這一點,因為調用此方法是通過boost::bind
和boost::asio
(此內存地址可能無效)。 那么,有沒有簡單的方法可以做到這一點? 還是讓我離開的唯一方法是將該對象打包到指針中?
您可以讓shared_ptr管理協程,然后將weak_ptr傳遞給bind()。 在回調函數中,您可以通過weak_ptr檢查shared_ptr是否仍然有效:
shared_ptr< coroutine<...> > sp = wp.lock();
if (sp) {
...
} else {
// shared_ptr was released
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.