deref-move
ja.cppreference.net より
template< class I >
constexpr decltype(auto) /*deref-move*/( I& iter )
|
(C++17 以降) (説明専用*) |
|
iter をデリファレンスした結果を右辺値として返します:
- もし
*iterが左辺値参照型である場合、std::move(*iter)を返します。 - そうでなければ
*iterを直接返します。
引数
| iter | - | 参照先オブジェクトがムーブされるイテレータ |
戻り値
上記の通りです。
注記
この説明専用の関数テンプレートは、LWG Issue 3918 の解決策として導入されました。これは、デリファレンス iter の結果がすでに右辺値である場合に、不要なムーブ構築を防ぐために使用されます。
関連項目
(C++17) |
オブジェクトの範囲を未初期化のメモリ領域にムーブします (関数テンプレート & アルゴリズム関数オブジェクト) |
(C++20) |
|
(C++17) |
指定された数のオブジェクトを未初期化のメモリ領域にムーブします (関数テンプレート & アルゴリズム関数オブジェクト) |
(C++20) |