gpt4 book ai didi

c++ - 使用 MinGW 在调试和发布中检查 STL 边界

转载 作者:行者123 更新时间:2023-11-28 06:09:24 24 4
gpt4 key购买 nike

我正在从事一个遇到一些问题的项目(即 settlers 2.5 return to the roots)。我希望能够通过仅使用 STL 容器和边界检查来解决其中的一些问题。

那么在 Release模式下是否也可以在 STL 容器中使用边界检查?所以我们可以使用一个(性能较低的)版本,它会执行它们并在出错时崩溃/抛出?

构建服务器使用 MinGW 从 linux 交叉编译到 windows 和 apple。

编辑:[]-运算符是专门使用的。更改为 .at() 将需要大量的搜索和替换操作,该操作在某些时候必须撤消。最好的是,如果有一个定义或将 []-behaviour 切换到 .at()

的东西

最佳答案

第一种方法

您可以依靠异常来验证使用 STL 容器的绑定(bind)检查。这在调试和 Release模式下都是启用的。

例如std::vector::at如果超出范围,则抛出超出范围的异常。

第二种方法

如果您使用 operator[] 并且不想更改代码,则可以启用 _GLIBCXX_DEBUG 标志以进行绑定(bind)检查。

关于c++ - 使用 MinGW 在调试和发布中检查 STL 边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31590694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com