我正在从事一个项目(定居者2.5回归根源),这会遇到一些问题。我希望能够通过仅使用stl容器和边界检查来解决其中一些问题。
那么在发布模式下是否可以在STL容器中使用边界检查?所以我们可以使用(执行性较差)版本,它们会出错并崩溃/抛出错误?
构建服务器使用MinGW从linux交叉编译到windows和apple。
编辑:[] -operator是专门使用的。更改为.at()将需要一个大的搜索和替换操作,在某些时候必须反转。如果有一个定义或某些东西将[] -behaviour切换为.at()
,那将是最好的答案 0 :(得分:1)
第一种方法
您可以依赖异常来验证使用STL容器的绑定检查。这在调试和释放模式下均可启用。
例如,如果超出范围,std::vector::at会抛出超出范围的异常。
第二种方法
如果您使用operator []并且您不想更改代码,则可以启用_GLIBCXX_DEBUG
标志以进行绑定检查。