VC 2005 和 2008 用户,小心发布版中的“Checked Iterators” VC++HTML
程序员文章站
2022-06-04 20:09:50
...
英文原文
http://www.kbasm.com/cpp-smart-pointer-memory-management.html
简单说,VC 2005和2008的STL库会对迭代器进行越界检查,很好的调试功能,可惜在release版里这个也是缺省打开的,导致STL迭代器非常非常慢。
所以一定要在发布版中把这个功能禁止掉,方法很简单,把宏_SECURE_SCL定义成0就行了。
VC 2010 也有这个检查,但只在debug版打开,release版则缺省禁止了,所以没问题。
http://www.kbasm.com/cpp-smart-pointer-memory-management.html
简单说,VC 2005和2008的STL库会对迭代器进行越界检查,很好的调试功能,可惜在release版里这个也是缺省打开的,导致STL迭代器非常非常慢。
所以一定要在发布版中把这个功能禁止掉,方法很简单,把宏_SECURE_SCL定义成0就行了。
VC 2010 也有这个检查,但只在debug版打开,release版则缺省禁止了,所以没问题。