_SECURE_SCL的作用

 在调试一处宕机时发现在某种情况下,容器导致的异常并没有产生dump文件,原因是Checked Iterator机制导致迭代器异常抛出,而未被catch捕获。(Checked Iterator是指具有越界检查功能的迭代器,并且会在检查到越界操作时触发运行时错误处理。)

 _SECURE_SCL如果定义为0,迭代器检查(Checked Iterator)将被禁用。

 事实上如果开启了迭代器检查,每次内存偏移都会调用_invalid_parameter_noinfo,导致操作更耗时,有兴趣可以在汇编中对比两者——所以,建议在编写release版本时手动关闭该宏。

posted @ 2011-06-21 11:41  阿亮同学  阅读(2174)  评论(0编辑  收藏  举报