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
输出迭代器不需要支持任何一种操作。
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
输出迭代器不需要支持任何一种操作。