3

重複の可能性:
GCCSTL境界チェック

g ++ STLにstd:vectorの自動デバッグバージョンのようなものはありますか?そうでない場合、どうすればそれを達成できますか?

私が欲しいのは、例えば私のg++呼び出しでデバッグパラメータを指定することです:

g++ -D DEBUG_ main.cpp

このパラメーターが定義されている場合、vector :: at()を使用する場合と同様に、すべてのstd::vectorが要素にアクセスするときに境界をチェックするようにします。

パラメータを省略した場合、すべてのベクトルを通常の[]演算子が使用されているかのように動作させます。つまり、境界チェックでパフォーマンスが「無駄」になることはありません。

VC++はこのようなことをしていると聞きました。だから私の質問は、g ++を使用してこれを行う方法ですか?

4

2 に答える 2

8

あなたが望む旗は-D_GLIBCXX_DEBUG

libstdc ++のその他のデバッグオプションは、次の場所にあります。

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

于 2012-05-14T13:38:19.970 に答える
0

デバッグモードでは、追加のアサーションとチェックを行うことができますが、at()またはを使用する[]ことは常にあなたの側にあります。

at()--out_of_bounds例外をスローします[]-しないでください

于 2012-05-14T13:40:07.457 に答える