Как включить проверку привязки для operator[]
и итераторов?
Проверка привязки GCC STL
Ответ 1
Вы можете активировать проверку итератора времени выполнения и проверку границ путем компиляции с помощью - D_GLIBCXX_DEBUG
. Также обратите внимание, что контейнеры с произвольным доступом предоставляют всегда проверку проверок at()
-операции в дополнение к operator []
.
Литература:
Режим отладки GCC STL: http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode_using.html#debug_mode.using.mode
at(): std::vector::at()
, std::deque::at()
и std::array::at()
Ответ 2
вы должны перегрузить operator[]
для ваших конкретных классов. Если вы хотите использовать существующий контейнер STL, функция at()
- это проверенная границами версия operator[].