std::indirectly_copyable_storable
来自 cppreference.cn
< cpp | 迭代器 (iterator)
定义于头文件 <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 类型(概念) |
指定值可以从 indirectly_readable 类型移动到 indirectly_writable 类型,并且移动可以通过中间对象执行(概念) |