【发布时间】:2011-10-05 22:11:06
【问题描述】:
我正在为自定义数组类型编写 c++ RandomAccessIterator。
由于它不适用于 std::sort 和简单的 int 数组,因此我想确保我已正确实现它。
您知道那里有任何“迭代器一致性测试”框架吗?
我已经实现了所有可能的功能或operator,一切似乎都是正确的,但是自从sort()取消引用array::end()后我仍然错过了一些东西
【问题讨论】:
-
我不明白你在说什么
sort。它当然不会取消对 end 迭代器的引用,并且没有理由不使用自定义迭代器。 -
@jalf:如果自定义迭代器的比较运算符的实例不能正常工作,如果迭代器之一是
end,则可能会发生这种情况。 -
为什么不发布自定义数组类型的相关部分?
-
@Space_C0wb0y :您能否提示一下该运算符的语义应该是什么?我找不到任何关于它应该如何表现的详细信息,特别是关于 end() 迭代器值(谢谢)
-
@Space_C0wb0y:这是真的。但实际上,说“不正确的代码可能会出现不正确的行为”对任何人来说都不足为奇。 ;)
标签: c++ unit-testing iterator standards-compliance