Skip to content

Latest commit

 

History

History
71 lines (49 loc) · 1.41 KB

File metadata and controls

71 lines (49 loc) · 1.41 KB

operator=

  • 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

処理系

参照