Namespaces
Variants

deref-move

来自 zh.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 的结果已经是右值时,进行不必要的移动构造。

另请参阅

将一系列对象移动到未初始化的内存区域
(函数模板 & 算法函数对象)
将指定数量的对象移动到未初始化的内存区域
(函数模板 & 算法函数对象)