A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.com/reference/future/packaged_task/operator=/ below:

public member function

<future>

std::packaged_task::operator= move (1)
packaged_task& operator= (packaged_task&& rhs) noexcept;
copy [deleted] (2)
packaged_task& operator= (const packaged_task&) = delete;

Move-assign packaged_task

Acquires the shared state and stored task of rhs.

The shared state associated to the object before the call (if any) is abandoned (as if the packaged_task was destroyed).

rhs is left with no shared state: any operations that access its shared state will throw future_error with a no_state error condition.

packaged_task objects cannot be copied (2).



Parameters
rhs
Another packaged_task object of the same type (with the same template parameters, Ret and Args...).

Return value*this
Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// packaged_task construction / assignment
#include <iostream>     // std::cout
#include <utility>      // std::move
#include <future>       // std::packaged_task, std::future
#include <thread>       // std::thread

int main ()
{
  std::packaged_task<int(int)> foo;                          // default-constructed
  std::packaged_task<int(int)> bar ([](int x){return x*2;}); // initialized

  foo = std::move(bar);                                      // move-assignment

  std::future<int> ret = foo.get_future();  // get future

  std::thread(std::move(foo),10).detach();  // spawn thread and call task

  // ...

  int value = ret.get();                    // wait for the task to finish and get result

  std::cout << "The double of 10 is " << value << ".\n";

  return 0;
}

Output:


Data races Both the object and rhs are modified.

Exception safetyNo-throw guarantee: never throws exceptions.

See also
packaged_task::packaged_task
Construct packaged task (public member function)
packaged_task::operator()
Call stored task (public member function)
packaged_task::swap
Swap packaged_task (public member function)

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4