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

时间:2018-11-28 03:34:50

标签: c++ iterator standards semantics typetraits

C ++ 17标准27.2.1.8说:

  

当且仅当迭代器j被称为可从迭代器i到达   表达式++ i的应用序列有限   使i == j。

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

但是,对于迭代器类型,我对operator !=一无所知。

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

1 个答案:

答案 0 :(得分:6)

请参见C ++ 17 [input.iterators] / 2表95“输入迭代器要求”。

输入迭代器要求a != b有效,并且如果!(a == b)有效,则其行为与git clone https://github.com/username/repositoryName.git 相同。 Link to cppreference.com summary

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