名前空間
変種
操作

std::function::operator=

提供: cppreference.com
< cpp‎ | utility‎ | functional‎ | function
 
 
 
関数オブジェクト
関数ラッパー
(C++11)
(C++11)
関数の部分適用
(C++20)
(C++11)
関数呼び出し
(C++17)
恒等関数オブジェクト
(C++20)
参照ラッパー
(C++11)(C++11)
演算子ラッパー
否定子
(C++17)
検索子
古いバインダとアダプタ
(C++17未満)
(C++17未満)
(C++17未満)
(C++17未満)
(C++17未満)(C++17未満)(C++17未満)(C++17未満)
(C++20未満)
(C++20未満)
(C++17未満)(C++17未満)
(C++17未満)(C++17未満)

(C++17未満)
(C++17未満)(C++17未満)(C++17未満)(C++17未満)
(C++20未満)
(C++20未満)
 
 
function& operator=( const function& other );
(1) (C++11以上)
function& operator=( function&& other );
(2) (C++11以上)
function& operator=( std::nullptr_t );
(3) (C++11以上)
template< class F >
function& operator=( F&& f );
(4) (C++11以上)
template< class F >
function& operator=( std::reference_wrapper<F> f );
(5) (C++11以上)

新しいターゲットstd::function に代入します。

1) function(other).swap(*this); を実行したかのように、 otherターゲットのコピーを代入します。
2) otherターゲット*this にムーブします。 other は未規定な値を持つ有効な状態になります。
3) 現在のターゲットを捨てます。 *thisになります。
4) function(std::forward<F>(f)).swap(*this); を実行したかのように、 *thisターゲットf に設定します。 この演算子は、 f が引数型 Args... および戻り値型 R に対して Callable でなければ、オーバーロード解決に参加しません。 (C++14以上)
5) function(f).swap(*this); を実行したかのように、 *thisターゲットf のコピーに設定します。

目次

[編集] 引数

other - ターゲットをコピーする別の std::function オブジェクト
f - ターゲットを初期化する callable
型の要件
-
FCallable の要件を満たさなければなりません。

[編集] 戻り値

*this

[編集] 例外

1-2) (なし)
3)

(なし)

(C++17未満)
noexcept 指定:  
noexcept
  
(C++17以上)
4) (なし)
5)
noexcept 指定:  
noexcept
  

[編集] ノート

C++17 でアロケータのサポートが std::function から削除される前でも、これらの代入演算子は *this のアロケータや other のアロケータではなく、デフォルトのアロケータを使用します (LWG #2386 を参照してください)。

[編集] 関連項目

(C++17未満)
新しいターゲットを代入します
(パブリックメンバ関数) [edit]