promise.set_exception(std::current_exception());
}
}
-template <class R, class F>
-XBT_ATTRIB_DEPRECATED_v323("Please use xbt::fulfill_promise()") auto fulfillPromise(R& promise, F&& code)
- -> decltype(promise.set_value(code()))
-{
- try {
- promise.set_value(std::forward<F>(code)());
- }
- catch(...) {
- promise.set_exception(std::current_exception());
- }
-}
template <class P, class F> auto fulfill_promise(P& promise, F&& code) -> decltype(promise.set_value())
{
promise.set_exception(std::current_exception());
}
}
-template <class P, class F>
-XBT_ATTRIB_DEPRECATED_v323("Please use xbt::fulfill_promise()") auto fulfillPromise(P& promise, F&& code)
- -> decltype(promise.set_value())
-{
- try {
- std::forward<F>(code)();
- promise.set_value();
- }
- catch(...) {
- promise.set_exception(std::current_exception());
- }
-}
/** Set a promise/result from a future/result
*