std::indirectly_copyable_storable
来自 cppreference.cn
定义于头文件 <iterator> |
||
template< class In, class Out > concept indirectly_copyable_storable = |
(自 C++20 起) | |
indirectly_copyable_storable
概念指定了 indirectly_readable
类型和 indirectly_writable
类型之间的关系。除了 indirectly_copyable
之外,此概念还指定了从 indirectly_readable
类型的复制可以通过中间对象执行。
[编辑] 语义要求
当且仅当给定可解引用的 In
类型值 i
时,In
和 Out
建模 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 类型,并且移动可以通过中间对象执行(概念) |