在铿锵声中,有没有办法启用边界检查 [] 访问 std::vectors 和其他 STL 容器,最好是仅在调试模式下构建?
我只是花了几个小时寻找一个微妙的错误,结果证明它是由我们访问超过 std::vector 的末尾引起的。当它检测到错误时,它不需要做任何聪明的事情,只需在调试器中捕获,这样我就可以找出它发生的位置并在代码中修复它。
除了“创建自己的继承自 std::vector 的类型”之外,还有其他方法吗?我想避免这种情况?
(如果有什么不同,我正在使用 clang 3.1 版。)