- future[meta header]
- std[meta namespace]
- packaged_task[meta class]
- function[meta id-type]
- cpp11[meta cpp]
packaged_task& operator=(packaged_task&) = delete; // (1) C++11
packaged_task& operator=(const packaged_task&) = delete; // (1) C++14
packaged_task& operator=(packaged_task&& rhs) noexcept; // (2)- (1) : コピー代入演算子。コピー不可。
- (2) : ムーブ代入演算子。
- (2) :
*thisの共有状態を解放し、packaged_task(std::move(rhs)).swap(*this)を行う。
- (2) :
*this
- (2) : 投げない
#include <future>
#include <utility>
int foo() { return 3; }
int main()
{
// ムーブ代入
// 共有状態の所有権とタスクを移動する
std::packaged_task<int()> task1(foo);
std::packaged_task<int()> task2;
task2 = std::move(task1);
// task1は共有状態を持たない
}- std::move[link /reference/utility/move.md]
- C++11
- Clang: ??
- GCC: 4.7.0
- ICC: ??
- Visual C++: 2012