1
我讀新的C++關於改進std::future
和std::promise
這裏http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3857.pdf建議,並說的boost ::未來。那麼()返回延續的boost ::未來
下面的代碼它是一種常見的情況是,身體的一個當時的函數對象 本身就是一個基於未來的操作,它導致then() 返回future。在這種情況下,幾乎總是您真正關心的是內部未來的情況,因此 在返回之前執行隱式unwrap()(請參見下文)。
因此
auto promise = std::promise<int>{};
auto another_future = promise.get_future().then([](auto future) {
return std::async([]() { return 1; });
});
的another_future
類型是std::future<int>
而不是std::future<std::future<int>>
我試圖用boost::future
來達到同樣的事情,但它似乎像升壓延續不隱含地解開未來。有什麼我可以做的,以促進提振期貨的相同行爲?看起來好像沒有unwrap()
函數可用於結果要素。
我堅持必須通過構造函數手動打開未來嗎?另外在嘗試我得到以下錯誤時,我該怎麼辦?
inline explicit BOOST_THREAD_FUTURE(
BOOST_THREAD_RV_REF(
BOOST_THREAD_FUTURE<BOOST_THREAD_FUTURE<R> >) other); // EXTENSION