8

clang で、できればデバッグ モードでのみビルドする場合に、std::vectors およびその他の STL コンテナーへの [] アクセスの境界チェックを有効にする方法はありますか?

std::vector の末尾を超えてアクセスしたことが原因であることが判明した微妙なバグを探し出すのに何時間も費やしました。エラーが検出されたときに特別なことをする必要はありません。デバッガーをトラップするだけで、エラーが発生した場所を見つけてコード内で修正できます。

「std::vector から継承する独自の型を作成する」以外にこれを行う方法はありますか?

(違いがある場合は、clang バージョン 3.1 を使用しています。)

4

3 に答える 3

2
#define _GLIBCXX_DEBUG

これにより、すべての種類のインライン チェックが可能になります (vector および debug/vector を参照)。

于 2013-05-09T17:58:58.150 に答える