Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
_ITERATOR_DEBUG_LEVEL Makro mengontrol apakah iterator yang diperiksa dan dukungan iterator debug diaktifkan. Makro ini menggantikan dan menggabungkan fungsionalitas yang lebih _SECURE_SCL lama dan _HAS_ITERATOR_DEBUGGING makro.
Nilai Makro
Tabel berikut ini meringkas nilai yang mungkin untuk _ITERATOR_DEBUG_LEVEL makro.
| Mode kompilasi | Nilai makro | Deskripsi |
|---|---|---|
| Debug | ||
| 0 | Menonaktifkan iterator yang diperiksa dan menonaktifkan penelusuran kesalahan iterator. | |
| 1 | Mengaktifkan iterator yang diperiksa dan menonaktifkan penelusuran kesalahan iterator. | |
| 2 (Default) | Mengaktifkan penelusuran kesalahan iterator; iterator yang diperiksa tidak relevan. | |
| Rilis | ||
| 0 (Default) | Menonaktifkan iterator yang diperiksa. | |
| 1 | Mengaktifkan iterator yang diperiksa; penelusuran kesalahan iterator tidak relevan. |
Dalam mode rilis, pengkompilasi menghasilkan kesalahan jika Anda menentukan _ITERATOR_DEBUG_LEVEL sebagai 2.
Keterangan
_ITERATOR_DEBUG_LEVEL Makro mengontrol apakah iterator yang diperiksa diaktifkan, dan dalam mode Debug, apakah dukungan iterator debug diaktifkan. Jika _ITERATOR_DEBUG_LEVEL didefinisikan sebagai 1 atau 2, iterator yang diperiksa memastikan bahwa batas kontainer Anda tidak ditimpa. Jika _ITERATOR_DEBUG_LEVEL 0, iterator tidak diperiksa. Ketika _ITERATOR_DEBUG_LEVEL didefinisikan sebagai 1, penggunaan iterator yang tidak aman menyebabkan kesalahan runtime dan program dihentikan. Ketika _ITERATOR_DEBUG_LEVEL didefinisikan sebagai 2, penggunaan iterator yang tidak aman menyebabkan pernyataan dan dialog kesalahan runtime yang memungkinkan Anda masuk ke debugger.
_ITERATOR_DEBUG_LEVEL Karena makro mendukung fungsionalitas _SECURE_SCL yang sama dengan makro dan _HAS_ITERATOR_DEBUGGING , Anda mungkin tidak yakin makro dan nilai makro mana yang akan digunakan dalam situasi tertentu. Untuk mencegah kebingungan _ITERATOR_DEBUG_LEVEL , kami sarankan Anda hanya menggunakan makro. Tabel ini menjelaskan nilai makro yang setara _ITERATOR_DEBUG_LEVEL untuk digunakan untuk berbagai nilai _SECURE_SCL dan _HAS_ITERATOR_DEBUGGING dalam kode yang ada.
_ITERATOR_DEBUG_LEVEL |
_SECURE_SCL |
_HAS_ITERATOR_DEBUGGING |
|---|---|---|
| 0 (Rilis default) | 0 (dinonaktifkan) | 0 (dinonaktifkan) |
| 1 | 1 (diaktifkan) | 0 (dinonaktifkan) |
| 2 (Debug default) | (tidak relevan) | 1 (diaktifkan dalam mode Debug) |
Untuk informasi tentang cara menonaktifkan peringatan tentang iterator yang diperiksa, lihat _SCL_SECURE_NO_WARNINGS.
Contoh
Untuk menentukan nilai untuk _ITERATOR_DEBUG_LEVEL makro, gunakan /D opsi pengkompilasi untuk menentukannya pada baris perintah, atau gunakan #define sebelum header Pustaka Standar C++ disertakan dalam file sumber Anda. Misalnya, pada baris perintah, untuk mengkompilasi sample.cpp dalam mode debug dan menggunakan dukungan iterator debug, Anda dapat menentukan _ITERATOR_DEBUG_LEVEL definisi makro:
cl /EHsc /Zi /MDd /D_ITERATOR_DEBUG_LEVEL=1 sample.cpp
Dalam file sumber, tentukan makro sebelum header pustaka standar yang menentukan iterator.
// sample.cpp
#define _ITERATOR_DEBUG_LEVEL 1
#include <vector>
// ...
Lihat juga
Iterator Yang Diperiksa
Debug Dukungan Iterator
Pustaka Aman: Pustaka Standar C++