_SECURE_SCL的作用
在调试一处宕机时发现在某种情况下,容器导致的异常并没有产生dump文件,原因是Checked Iterator机制导致迭代器异常抛出,而未被catch捕获。(Checked Iterator是指具有越界检查功能的迭代器,并且会在检查到越界操作时触发运行时错误处理。)
_SECURE_SCL如果定义为0,迭代器检查(Checked Iterator)将被禁用。
事实上如果开启了迭代器检查,每次内存偏移都会调用_invalid_parameter_noinfo,导致操作更耗时,有兴趣可以在汇编中对比两者——所以,建议在编写release版本时手动关闭该宏。