Namespaces
Variants

deref-move

ja.cppreference.net より
 
 
アルゴリズムライブラリ
制約付きアルゴリズムとレンジ上のアルゴリズム (C++20)
制約付きアルゴリズム(例: ranges::copy, ranges::sort, ...
ソートと関連操作
分割操作
(C++11)    

ソート操作
二分探索操作
(分割された範囲に対して)
集合操作 (ソート済み範囲に対して)
マージ操作 (ソート済み範囲に対して)
ヒープ操作
最小値/最大値操作
(C++11)
(C++17)
辞書順比較操作
順列操作


 
 
template< class I >
constexpr decltype(auto) /*deref-move*/( I& iter )
(C++17 以降)
(説明専用*)

iter をデリファレンスした結果を右辺値として返します:

  • もし *iter が左辺値参照型である場合、std::move(*iter) を返します。
  • そうでなければ *iter を直接返します。

引数

iter - 参照先オブジェクトがムーブされるイテレータ

戻り値

上記の通りです。

注記

この説明専用の関数テンプレートは、LWG Issue 3918 の解決策として導入されました。これは、デリファレンス iter の結果がすでに右辺値である場合に、不要なムーブ構築を防ぐために使用されます。

関連項目

オブジェクトの範囲を未初期化のメモリ領域にムーブします
(関数テンプレート & アルゴリズム関数オブジェクト)
指定された数のオブジェクトを未初期化のメモリ領域にムーブします
(関数テンプレート & アルゴリズム関数オブジェクト)