_ITERATOR_DEBUG_LEVEL

IDL ( _ITERATOR_DEBUG_LEVEL ) 并将 SCL 宏取代 _SECURE_SCL () 和 _HAS_ITERATOR_DEBUGGING (隐藏) 宏的功能。

宏值

下表汇总了 _SECURE_SCL 和 _HAS_ITERATOR_DEBUGGING 宏的值,最后这些值如何由 _ITERATOR_DEBUG_LEVEL 宏取代。

以下各节介绍 SCL 和隐藏宏的可能值。

  • SCL=0
    禁用 CHECK 迭代器。

  • SCL=1
    使检查迭代器。

  • HID=0
    禁用迭代器的调试版本。

  • HID=1
    支持迭代器的调试版本。 HID 在发布版本无法启用。

下表描述的 IDL 宏取代值如何 SCL 和隐藏宏的值。

编译模式

新的宏

旧宏

说明

调试

IDL=0

SCL=0,HID=0

禁用 CHECK 迭代器并禁用调试。迭代器

IDL=1

SCL=1,HID=0

使检查迭代器并禁用调试。迭代器

IDL=2 (默认)

(不 SCL= 应用程序),HID=1

默认情况下,支持迭代器;调试检查的迭代器是不相关的。

Release

IDL=0 (默认)

SCL=0

默认情况下,禁用 CHECK 迭代器。

IDL=1

SCL=1

使检查迭代器;迭代器在调试不相关。

备注

在发布模式,因此,如果指定 IDL=2.,错误发出。

由于 _SECURE_SCL 宏和 _HAS_ITERATOR_DEBUGGING 支持类似的功能,使用的宏和宏值在特定情况的用户通常是不确定的。 若要解决此问题,我们建议您仅使用 _ITERATOR_DEBUG_LEVEL 宏。

请参见

参考

安全库:C++ 标准库