我确信我在使用 Visual Studio 2005 构建的项目中存在一些 std::vector
边界问题。根据 Microsoft documentation ,我可以使用 _SECURE_SCL
控制边界检查。它向我保证它是默认启用的 - 由某处的 #define _SECURE_SCL 1
提供。我当然找不到它,如果我将该定义放入 stdafx.h
,它不会与任何内容发生冲突。我错过了什么吗?使用 _SECURE_SCL
的“正常”方式是什么?
最佳答案
默认情况下,它在头文件中定义 yvals.h
.
- 如果两者都是
_ITERATOR_DEBUG_LEVEL
和HAS_ITERATOR_DEBUGGING
未定义,HAS_ITERATOR_DEBUGGING
默认为1
在调试版本中。 - 如果
_SECURE_SCL
未定义,HAS_ITERATOR_DEBUGGING
定义为1
,_SECURE_SCL
默认为1
如果_ITERATOR_DEBUG_LEVEL
,不同的规则开始发挥作用被定义为。有关详细信息,请参阅头文件。
关于c++ - _SECURE_SCL 通常在哪里找到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26330958/