home | help
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)

home | help