std::ranges:: iter_move
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定义于头文件
<iterator>
|
||
|
inline
namespace
/* 未指定 */
{
inline
constexpr
/* 未指定 */
iter_move
=
/* 未指定 */
;
|
(C++20 起)
(定制点对象) |
|
|
调用签名
|
||
|
template
<
class
T
>
requires
/* 见下文 */
|
(C++20 起) | |
从给定迭代器获取右值引用或纯右值临时对象。
一个 ranges :: iter_move ( t ) 是 表达式等价 于:
-
iter_move
(
t
)
,若
t
具有类或枚举类型,且该表达式在作为
不求值操作数
时是良构的,其中
iter_move的 重载决议 仅通过 实参依赖查找 找到的候选函数进行。 - 否则, std :: move ( * t ) ,若 * t 是良构的且为左值。
- 否则, * t ,若 * t 是良构的且为右值。
在所有其他情况下,对
ranges::iter_move
的调用都是非良构的,当
ranges
::
iter_move
(
e
)
出现在模板实例化的直接上下文时,这可能导致
替换失败
。
如果 ranges :: iter_move ( e ) 不等于 * e ,则程序格式错误,无需诊断。
定制点对象
名称
ranges::iter_move
表示一个
定制点对象
,它是一个字面量
semiregular
类类型的常量
函数对象
。详细信息请参阅
定制点对象
。
示例
|
本节内容不完整
原因:缺少示例 |
参见
|
(C++20)
|
将对调整后的底层迭代器解引用的结果转换为其关联的右值引用类型
(函数) |
|
(C++20)
|
将对底层迭代器解引用的结果转换为其关联的右值引用类型
(函数) |