在 std::vector 的 [] 运算符中维护边界检查以进行调试
寻求将代码从 Borland C 无缝迁移到 Visual Studio,您遇到了 std::vector 行为的差异。默认情况下,Visual Studio 对 at() 函数和 [] 运算符执行边界检查,即使在发布版本中也是如此。但是,您希望仅在调试模式下有选择地启用边界检查,以改进错误检测。
幸运的是,Visual Studio 允许您通过名为 _SECURE_SCL 的宏自定义此行为。通过将 _SECURE_SCL 设置为 0,您可以在发布模式下禁用 [] 运算符的边界检查,同时将其保留在调试模式下。这将为您提供所需的功能,并确保越界访问触发 std::out_of_range 异常,从而加快错误识别。
值得注意的是,随着即将发布的 Visual Studio 2010 版本,边界检查将不再适用。计划在发布版本中默认禁用,但在调试版本中保留。为了控制此行为,宏将被重命名为 _ITERATOR_DEBUG_LEVEL,允许您为每个构建配置指定所需的边界检查级别。
以上是如何在 Visual Studio 中维护'std::vector”的 [] 运算符的边界检查以进行调试?的详细内容。更多信息请关注PHP中文网其他相关文章!