GCC STL проверка привязки - PullRequest
       14

GCC STL проверка привязки

40 голосов
/ 08 апреля 2011

Как включить проверку границ для operator[] и итераторов?

Ответы [ 2 ]

63 голосов
/ 08 апреля 2011

Вы можете активировать итератор во время выполнения и проверку границ, компилируя с -D_GLIBCXX_DEBUG. Также обратите внимание, что контейнеры с произвольным доступом в дополнение к operator [].

обеспечивают операцию at() проверки границ всегда.

Ссылки:

Режим отладки GCC STL: http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode_using.html#debug_mode.using.mode

при () операции: std::vector::at(), std::deque::at() и std::array::at()

1 голос
/ 08 апреля 2011

вы должны перегрузить operator[] для ваших конкретных классов. Если вы хотите использовать существующий контейнер STL, функция at() является проверенной границей версией operator[].

...