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