我确信在使用Visual Studio 2005构建的项目中有一些std::vector
边界问题。根据Microsoft documentation,我可以使用_SECURE_SCL
控制边界检查。它向我保证它默认启用 - 由#define _SECURE_SCL 1
某处提供。我当然找不到它,如果我把这个定义放到stdafx.h
中,它就不会与任何东西发生冲突。我错过了什么吗?使用_SECURE_SCL
的“正常”方式是什么?
答案 0 :(得分:2)
默认情况下,它在头文件yvals.h
中定义。
_ITERATOR_DEBUG_LEVEL
和HAS_ITERATOR_DEBUGGING
都未定义,则HAS_ITERATOR_DEBUGGING
默认为调试版本中的1
。_SECURE_SCL
未定义,HAS_ITERATOR_DEBUGGING
定义为1
,则_SECURE_SCL
默认为1
如果定义了_ITERATOR_DEBUG_LEVEL
,则会有不同的规则发挥作用。有关详细信息,请参阅头文件。