【发布时间】:2021-11-24 22:07:09
【问题描述】:
我试图找出difference_type 成员对于满足std::weakly_incrementable 概念的意义。我目前正在定义一个满足std::output_iterator 的类,并且在域中没有任何东西可以附加这种类型(并且正在努力寻找它的用例)。
我已经追踪到n3351 paper 的根,但还没有找到真正的原因。为什么委员会选择将它放在层次结构中的这个位置而不是std::input_iterator?
【问题讨论】:
-
difference_type是什么?基本上,如果迭代器具有-运算符来计算从迭代器到另一个迭代器所需的++的数量,那么它将返回difference_type。您只需让它成为std::ptrdiff_t或足够大的有符号整数。 -
标准中有很多范围迭代器操作需要使用
iter_difference_t<I>,其中I可以是output_iterator。
标签: c++ iterator c++20 c++-concepts