Wie aktiviere ich die gebundene Überprüfung für operator[]
und Iteratoren?
GCC STL-gebundene Prüfung
Bild11
Peter g.
Sie können Laufzeit-Iterator und Begrenzungsprüfung aktivieren, indem Sie mit kompilieren -D_GLIBCXX_DEBUG
. Beachten Sie auch, dass Container mit wahlfreiem Zugriff die ständige Überprüfung der Grenzen bereitstellen at()
-Betrieb zusätzlich zu operator []
.
Verweise:
GCC-STL-Debug-Modus:
http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode_using.html#debug_mode.using.mode
at()-Operation: std::vector::at()
, std::deque::at()
und std::array::at()
-
Beachten Sie, dass die Verwendung des Debug-Modus ABI ändert, sodass Sie keine Module mischen können, die mit und ohne kompiliert wurden
-DGLIBCXX_DEBUG
.– Ruslan
26. Oktober 2017 um 6:57 Uhr
-
@Ruslan Der richtige Symbolname ist
_GLIBCXX_DEBUG
.– Evg
9. September 2020 um 12:39 Uhr
Sie sollten die überladen operator[]
für Ihren speziellen Unterricht. Wenn Sie einen vorhandenen STL-Container verwenden möchten, ist die at()
-Funktion ist eine grenzengeprüfte Version der operator[].