Visual Studio 中 std::vector 的 Operator[] 的边界检查行为
在 Visual Studio 2008 中,std::vector 的 Operator[]默认情况下表现出边界检查行为。这意味着使用operator[]访问向量定义范围之外的元素将导致std::out_of_range异常。但是,默认情况下,在调试和发布版本中都会启用此行为。
发布者表示有兴趣在发布版本中禁用边界检查以优化性能。幸运的是,Visual Studio 2010 计划通过在发布版本中禁用边界检查,同时默认在调试版本中保留边界检查来解决此问题。
此更改将由宏 _ITERATOR_DEBUG_LEVEL(以前为 _SECURE_SCL)控制,该宏可以设置为 0 以禁用边界检查。这允许开发人员有选择地在调试版本中启用运算符 [] 的边界检查,同时在发布版本中抑制它以提高性能。
通过实现此更改,Visual Studio 2010 将在管理 std 的边界检查行为方面提供更大的灵活性::向量的运算符[]。开发人员现在可以根据其特定的应用程序需求选择优先考虑准确性(在所有版本中进行边界检查)或性能(在发布版本中禁用边界检查)。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3