使用g ++进行std :: vector调试和发布构建

Haa*_*hii 3 c++ debugging stl g++

可能重复:
GCC STL绑定检查

是否有类似于g ++ STL中std:vector的自动调试版本,如果不是,我怎么能得到一个?

我想要的是在我的g ++调用中指定一个调试参数,例如:

g++ -D DEBUG_ main.cpp
Run Code Online (Sandbox Code Playgroud)

当定义这个参数时,我希望我的所有std :: vectors在访问元素时检查它们的边界,使用vector :: at()时的方式.

当省略参数时,我希望所有向量的行为都像使用normal []运算符一样,这​​意味着没有性能被"浪费"用于边界检查.

我听说VC++做的就是这样.所以我的问题是如何使用g ++?

Dav*_*e S 8

你想要的旗帜是 -D_GLIBCXX_DEBUG

可以在以下位置找到libstdc ++的更多调试选项:

http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode_using.html#debug_mode.using.mode