观察 1:C++ 输出迭代器需要&r == &++r
,而输入迭代器没有提到这个要求。参见 [C++11: 24.2.{3,4}]
观察 2:前向、双向和随机访问迭代器满足输入迭代器要求 [24.2.{5,6,7}:1],但不一定满足输出迭代器要求,除非它们是可变的[24.2.1:4]。
观察 3:双向迭代器添加前缀递减操作,符合要求&r == &--r
[24.2.6]。
那么,恒定的双向迭代器必须满足&r == &--r
但不一定满足&r == &++r
,而可变的双向迭代器必须同时满足两者,这是真的吗?
你能解决这个要求如何影响实现吗?
下面的 MvG 提出了我真正想说的问题:
- 常量 Forward 迭代器什么时候不满足
&r == &++r
?