Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::packaged_task::reset(3)  C++ Standard Libary std::packaged_task::reset(3)

NAME
       std::packaged_task::reset - std::packaged_task::reset

Synopsis
	  void reset();	 (since	C++11)

	  Resets  the state abandoning the results of previous executions. New
       shared state is
	  constructed.

	  Equivalent to	*this =	packaged_task(std::move(f)), where  f  is  the
       stored task.

Parameters
	  (none)

Return value
	  (none)

Exceptions
	    * std::future_error	if *this has no	shared state. The error	condi-
       tion is set to
	      no_state.
	    *  std::bad_alloc  if there	was not	enough memory for a new	shared
       state.
	    * any exception thrown by the move constructor of  the  new	 pack-
       aged_task

Example
       // Run this code

	#include <iostream>
	#include <cmath>
	#include <thread>
	#include <future>

	int main()
	{
	    std::packaged_task<int(int,int)> task([](int a, int	b) {
		return std::pow(a, b);
	    });
	    std::future<int> result = task.get_future();
	    task(2, 9);
	    std::cout << "2^9 =	" << result.get() << '\n';

	    task.reset();
	    result = task.get_future();
	    std::thread	task_td(std::move(task), 2, 10);
	    task_td.join();
	    std::cout << "2^10 = " << result.get() << '\n';
	}

Output:
	2^9 = 512
	2^10 = 1024

http://cppreference.com		  2022.07.31	  std::packaged_task::reset(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::packaged_task::reset&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help