_ITERATOR_DEBUG_LEVEL
_ITERATOR_DEBUG_LEVEL (IDL) 宏取代和合并 _SECURE_SCL (SCL) 和 _HAS_ITERATOR_DEBUGGING (隐藏) 宏的功能。
宏值
下表汇总了 _SECURE_SCL 和 _HAS_ITERATOR_DEBUGGING 宏的值,最后这些值的方式。_ITERATOR_DEBUG_LEVEL 宏取代。
以下各节介绍 SCL 和隐藏的宏的可能值。
SCL=0
禁用检查的迭代器。SCL=1
启用检查的迭代器。HID=0
禁用迭代器调试调试版本。HID=1
启用迭代器调试调试版本。 HID 无法启用在发布版本。
下表描述 IDL 宏值如何取代 SCL 和隐藏的宏值。
编译模式 |
新的宏 |
旧宏 |
描述 |
---|---|---|---|
调试 |
|||
IDL=0 |
SCL=0,HID=0 |
禁用检查的迭代器和禁用迭代器调试。 |
|
IDL=1 |
SCL=1,HID=0 |
启用检查的迭代器和禁用迭代器调试。 |
|
IDL=2 (默认值) |
SCL= (不适用),HID=1 |
默认情况下,启用迭代器调试;经过检查的迭代器无关。 |
|
Release |
|||
IDL=0 (默认值) |
SCL=0 |
默认情况下,禁用检查的迭代器。 |
|
IDL=1 |
SCL=1 |
启用检查的迭代器;迭代器调试无关。 |
备注
在发布模式下,因此,如果指定 IDL=2.,错误发出。
由于 _SECURE_SCL 和 _HAS_ITERATOR_DEBUGGING 宏支持类似的功能,宏和宏在特定情形值使用的用户通常是不定的。 若要解决此问题,我们建议您仅使用 _ITERATOR_DEBUG_LEVEL 宏。