C++ 标准是否要求必须为给定的迭代器类型提供运算符 !=?

Does the C++ standard require operator != must be provided for a given iterator type?

C++17 标准 27.2.1.8 说:

An iterator j is called reachable from an iterator i if and only if there is a finite sequence of applications of the expression ++i that makes i == j.

也就是说,任何符合规范的迭代器类型都必须提供operator ==

但是,我没有发现 operator != 是迭代器类型的要求。

C++ 标准是否要求必须为给定的迭代器类型提供 operator !=

参见 C++17 [input.iterators]/2 Table 95 "Input iterator requirements"。

输入迭代器要求 a != b 有效,如果 !(a == b) 有效,则其行为与 !(a == b) 相同。 Link to cppreference.com summary

输出迭代器不需要支持任何一种操作。