_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 宏。

请参见

参考

安全的库:标准C++库