std::experimental::ranges::OutputIterator
来自 cppreference.cn
< cpp | experimental | ranges
template< class I, class T > concept bool OutputIterator = |
(ranges TS) | |
OutputIterator
概念是对 Iterator
的细化,添加了可以使用它来写入由 T
编码的类型和值类别的值(通过 Writable
)的要求。EqualityComparable
不是必需的。
设 E
是一个表达式,使得 decltype((E)) 为 T
,并且 i
是类型 I
的可解引用对象。仅当 *i++ = E; 具有等效于 *i = E; ++i; 的效果时,OutputIterator<I, T>
才满足。
[编辑] 等式保持
如果一个表达式在给定相等输入时产生相等输出,则该表达式是等式保持的。
- 表达式的输入由其操作数组成。
- 表达式的输出由其结果和表达式修改的所有操作数(如果有)组成。
每个要求等式保持的表达式还必须是稳定的:在没有显式干预修改这些输入对象的情况下,对具有相同输入对象的此类表达式的两次评估必须具有相等的输出。
[编辑] 注意
与 C++ 标准中的输出迭代器要求不同,Ranges TS 中的 OutputIterator
不要求定义迭代器类别标签。
输出迭代器上的算法应该是单程的。