deref-move

来自cppreference.com


 
 
算法库
受约束算法及范围上的算法 (C++20)
包含算法例如 ranges::copyranges::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 问题 3918 引入。它用于在解引用 iter 的结果已经是右值时避免从该结果进行多余的移动构造。

参阅

移动范围中对象到未初始化内存
(函数模板 & 算法函数对象)[编辑]
移动若干对象到未初始化内存
(函数模板 & 算法函数对象)[编辑]