Как включить проверку границ для operator[] и итераторов?
operator[]
Вы можете активировать итератор во время выполнения и проверку границ, компилируя с -D_GLIBCXX_DEBUG. Также обратите внимание, что контейнеры с произвольным доступом в дополнение к operator [].
-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()
std::vector::at()
std::deque::at()
std::array::at()
вы должны перегрузить operator[] для ваших конкретных классов. Если вы хотите использовать существующий контейнер STL, функция at() является проверенной границей версией operator[].
operator[].