Skip to content

Files

79 lines (58 loc) · 1.79 KB

assign.md

File metadata and controls

79 lines (58 loc) · 1.79 KB

assign

  • functional[meta header]
  • std[meta namespace]
  • function[meta class]
  • function template[meta id-type]
  • cpp11[meta cpp]
  • cpp17removed[meta cpp]
template <class F, class Alloc>
void assign(F&& f, const Alloc& alloc);

この機能は、C++17で削除された。このクラスでメモリアロケータを使用する必要はない。

概要

関数オブジェクトとアロケータを再代入する。

効果

function(allocator_arg, alloc, std::forward<F>(f)).swap(*this)
  • function[link op_constructor.md]
  • allocator_arg[link /reference/memory/allocator_arg_t.md]
  • std::forward[link /reference/utility/forward.md]
  • swap[link swap.md]

戻り値

なし

#include <iostream>
#include <functional>

int ident(int x) { return x; }

int main()
{
  std::function<int(int)> f;

  // 関数とアロケータを代入。
  //
  // ※ここではint型を対象とするアロケータを渡しているが、
  // 内部で適切な関数の型にrebindして使われる。
  f.assign(ident, std::allocator<int>());

  int result = f(1);
  std::cout << result << std::endl;
}
  • assign[color ff0000]
  • f(1)[link op_call.md]

出力

1

バージョン

言語

  • C++11

処理系

参照