How do I enable bound checking for operator[]
and iterators?
相关问题
- Sorting 3 numbers without branching [closed]
- How to compile C++ code in GDB?
- Why does const allow implicit conversion of refere
- thread_local variables initialization
- What uses more memory in c++? An 2 ints or 2 funct
相关文章
- Class layout in C++: Why are members sometimes ord
- How to mock methods return object with deleted cop
- Which is the best way to multiply a large and spar
- C++ default constructor does not initialize pointe
- Selecting only the first few characters in a strin
- What exactly do pointers store? (C++)
- Converting glm::lookat matrix to quaternion and ba
- What is the correct way to declare and use a FILE
you should overload the
operator[]
for your specific classes. If you want to use an existing STL container, theat()
function is a bounds-checked version of theoperator[].
You can activate runtime iterator and bounds checking by compiling with
-D_GLIBCXX_DEBUG
. Also note that random-access containers provide the always bounds-checkingat()
-operation in addition tooperator []
.References:
GCC STL debug mode: http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode_using.html#debug_mode.using.mode
at() operation:
std::vector::at()
,std::deque::at()
andstd::array::at()