std::experi...uture::then(3) C++ Standard Libary std::experi...uture::then(3) NAME std::experimental::shared_future::then - std::experimental::shared_fu- ture::then Synopsis template< class F > future</* see below */> then( F&& func ) const; Attach the continuation func to *this. The behavior is undefined if *this has no associated shared state (i.e., valid() == false). Creates a shared state associated with the future object to be returned, and a copy fd of func constructed as if by DECAY_COPY(std::forward<F>(func)) evalu- ated in the thread calling then, where DECAY_COPY is defined as template<class T> std::decay_t<T> DECAY_COPY(T&& v) { return std::forward<T>(v); } When the shared state currently associated with *this is ready, the con- tinuation INVOKE(std::move(fd), *this) is called on an unspecified thread of exe- cution, where INVOKE is the operation defined in Callable. If that expression is in- valid, the behavior is undefined. Any value returned from the continuation is stored as the result in the shared state of the returned future object. Any exception propagated from the execu- tion of the continuation is stored as the exceptional result in the shared state of the returned future object. Let U be the return type of the continuation (i.e. std::result_of_t<std::decay_t<F>(const std::experimental::shared_fu- ture<T> &)>). If U is std::experimental::future<T2> for some type T2, then the return type of then is std::experimental::future<T2>, otherwise it is std::experimental::fu- ture<U>. This is known as implicit unwrapping. If implicit unwrapping takes place and the continuation returns an in- valid future, then the shared state is made ready with an exception of type std::fu- ture_error with an error condition of std::future_errc::broken_promise. After this function returns, valid() is true. Parameters func - a continuation to be attached Return value A std::experimental::future object associated with the shared state cre- ated by this object. valid() == true for the returned object. Example This section is incomplete Reason: no example Category: * Todo no example http://cppreference.com 2024.06.10 std::experi...uture::then(3)
NAME | Synopsis | Parameters | Return value | Example | Category:
Want to link to this manual page? Use this URL:
<https://man.FreeBSD.org/cgi/man.cgi?query=std::experimental::shared_future::then&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>