table of contents
        
      
      
    - Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::experimental::shared_future::then(3) | C++ Standard Libary | std::experimental::shared_future::then(3) | 
NAME¶
std::experimental::shared_future::then - std::experimental::shared_future::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))
    evaluated 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
    continuation
  
   INVOKE(std::move(fd), *this) is called on an unspecified thread of execution,
    where
  
   INVOKE is the operation defined in Callable. If that expression is invalid,
    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 execution 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_future<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::future<U>. This is
  
   known as implicit unwrapping.
  
   If implicit unwrapping takes place and the continuation returns an invalid
    future,
  
   then the shared state is made ready with an exception of type
    std::future_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 created by this
  
   object. valid() == true for the returned object.
Example¶
 This section is incomplete
  
   Reason: no example
Category:¶
* Todo no example
| 2024.06.10 | http://cppreference.com |