std::indirectly_copyable_storable
|
在标头
<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> 是右值引用类型,则 *i 在
obj的初始化后被置于合法但未指定的状态。
相等性保持
标准库概念的 requires 表达式中声明的表达式都要求保持相等性(除非另外说明)。
参阅
|
(C++20)
|
指定可从 indirectly_readable 类型复制值给 indirectly_writable 类型(概念) |
|
(C++20)
|
指定可从 indirectly_readable 类型移动值给 indirectly_writable 类型,且该移动可以通过中间对象进行(概念) |