home | help
deductiongu...ckaged_task(3)   C++ Standard Libary  deductiongu...ckaged_task(3)

NAME
     deductionguidesforstd::packaged_task - deductionguidesforstd::packaged_task

Synopsis
	Defined in header <future>
	template<  class R, class... Args >			      (1) (since
     C++17)
	packaged_task( R(*)(Args...) ) -> packaged_task<R(Args...)>;
	template< class F >					     (2)  (since
     C++17)
	packaged_task( F ) -> packaged_task</*see below*/>;
	template<  class F >					      (3) (since
     C++23)
	packaged_task( F ) -> packaged_task</*see below*/>;
	template< class F >					     (4)  (since
     C++23)
	packaged_task( F ) -> packaged_task</*see below*/>;

	1)  This deduction guide is provided for std::packaged_task to allow de-
     duction from
	functions.
	2) This overload participates in overload resolution only if  &F::opera-
     tor() is
	well-formed  when treated as an unevaluated operand and decltype(&F::op-
     erator()) is
	of the form R(G::*)(A...) (optionally cv-qualified, optionally noexcept,
     optionally
	lvalue	reference   qualified).   The	deduced   type	 is   std::pack-
     aged_task<R(A...)>.
	3)  This overload participates in overload resolution only if &F::opera-
     tor() is
	well-formed when treated as an unevaluated operand and F::operator()  is
     an explicit
	object parameter function whose type is of form R(G, A...) or R(G, A...)
     noexcept.
	The deduced type is std::packaged_task<R(A...)>.
	4)  This overload participates in overload resolution only if &F::opera-
     tor() is
	well-formed when treated as an unevaluated operand and F::operator()  is
     a static
	member	function  whose type is of form R(A...) or R(A...) noexcept. The
     deduced type
	is std::packaged_task<R(A...)>.

Notes
	These deduction guides do not allow deduction from a function  with  el-
     lipsis
	parameter,  and  the ... in the types is always treated as a pack expan-
     sion.

Example
     // Run this code

      #include <future>

      int func(double) { return 0; }

      int main()
      {
	  std::packaged_task f{func}; // deduces packaged_task<int(double)>

	  int i = 5;
	  std::packaged_task g	=  [&](double)	{  return  i;  };  //  =>  pack-
     aged_task<int(double)>
      }

http://cppreference.com 	   2024.06.10	    deductiongu...ckaged_task(3)

home | help