VC 之 Debug Iterator
作者:tyc611.cublog.cn,2008-08-26
VC从VS2005开始提供Checked Iterator和Debug Iterator支持。Checked Iterator仅提供了越界检查(可用于Debug版和Release版);而Debug Iterator提供了更复杂的调试功能(仅用于Debug版),能够检测到迭代器的不正确使用(比如,无效迭代器、越界、非同一容器的迭代器之间的二元运算,等等)。当检测到Iterator的非法使用时,Debug Iterator会弹出ASSERT对话框来报告错误。
默认情况下,Debug Iterator的调试功能是打开的(默认定义了宏_HAS_ITERATOR_DEBUGGING为1),但可以通过通过宏_HAS_ITERATOR_DEBUGGING为0来关闭Debug Iterator的调试功能。
另外,Debug Iterator具有非平凡的析构函数。如果它的析构函数因任何原因没有运行,将会导致访问异常和数据毁坏。
阅读(1339) | 评论(0) | 转发(0) |