簡體   English   中英

通過函數參數傳遞boost.coroutine

[英]Passing boost.coroutine through function arguments

好吧,我的問題是正確地將boost::coroutines::coroutine<std::string(void)>對象作為函數參數傳遞。 我無法通過引用做到這一點,因為調用此方法是通過boost::bindboost::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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM