std::indirectly_movable_storable
来自 cppreference.com
定义在头文件中 <iterator> |
||
template< class In, class Out > concept indirectly_movable_storable = |
(自 C++20 起) | |
indirectly_movable_storable
概念指定了 indirectly_readable
类型和 indirectly_writable
类型之间的关系。除了 indirectly_movable
之外,此概念还指定了可以通过中间对象执行从 indirectly_readable
类型进行的移动。
[编辑] 语义要求
In
和 Out
仅在给定类型为 In
的可解引用值 i
时才模拟 std::indirectly_movable_storable<In, Out>
- 在定义 std::iter_value_t<In> obj(ranges::iter_move(i)); 后,
obj
等于之前由 *i 表示的值,并且 - 如果 std::iter_rvalue_reference_t<In> 是右值引用类型,则在初始化
obj
后,*i 将被置于有效但未指定的狀態。
[编辑] 相等性保持
在标准库概念的 requires 表达式 中声明的表达式要求是 相等性保持的(除非另有说明)。
[编辑] 另请参阅
(C++20) |
指定了可以从 indirectly_readable 类型移动到 indirectly_writable 类型的值(概念) |
(C++20) |
指定了可以从 indirectly_readable 类型复制到 indirectly_writable 类型的值,并且可以通过中间对象执行复制(概念) |