Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Makro, _ITERATOR_DEBUG_LEVEL denetlenen yineleyicilerin ve hata ayıklama yineleyicisi desteğinin etkinleştirilip etkinleştirilmediğini denetler. Bu makro, eski _SECURE_SCL ve makroların işlevlerinin yerini alır ve _HAS_ITERATOR_DEBUGGING birleştirir.
Makro Değerleri
Aşağıdaki tabloda makro için olası değerler özetlemektedir _ITERATOR_DEBUG_LEVEL .
| Derleme modu | Makro değeri | Açıklama |
|---|---|---|
| Hata Ayıklama | ||
| 0 | denetlenen yineleyicileri devre dışı bırakır ve yineleyici hata ayıklamasını devre dışı bırakır. | |
| 1 | Denetlenen yineleyicileri etkinleştirir ve yineleyici hata ayıklamasını devre dışı bırakır. | |
| 2 (Varsayılan) | Yineleyici hata ayıklamasını etkinleştirir; denetlenen yineleyiciler ilgili değildir. | |
| Sürüm | ||
| 0 (Varsayılan) | denetlenen yineleyicileri devre dışı bırakır. | |
| 1 | denetlenen yineleyicileri etkinleştirir; yineleyici hata ayıklaması uygun değildir. |
Sürüm modunda, 2 olarak belirtirseniz _ITERATOR_DEBUG_LEVEL derleyici bir hata oluşturur.
Açıklamalar
Makro, _ITERATOR_DEBUG_LEVEL denetlenen yineleyicilerin etkinleştirilip etkinleştirilmediğini ve Hata ayıklama modunda hata ayıklama yineleyicisi desteğinin etkinleştirilip etkinleştirilmediğini denetler. 1 veya 2 olarak tanımlanmışsa _ITERATOR_DEBUG_LEVEL , denetlenen yineleyiciler kapsayıcılarınızın sınırlarının üzerine yazılmadığından emin olun. 0 ise _ITERATOR_DEBUG_LEVEL , yineleyiciler işaretlenmez. 1 olarak tanımlandığında _ITERATOR_DEBUG_LEVEL , herhangi bir güvenli olmayan yineleyici kullanımı çalışma zamanı hatasına neden olur ve program sonlandırılır. 2 olarak tanımlandığında _ITERATOR_DEBUG_LEVEL , güvenli olmayan yineleyici kullanımı, hata ayıklayıcıya girmenizi sağlayan bir onay ve çalışma zamanı hata iletişim kutusuna neden olur.
_ITERATOR_DEBUG_LEVEL Makro ve _HAS_ITERATOR_DEBUGGING makrolarına benzer işlevleri desteklediğinden_SECURE_SCL, belirli bir durumda hangi makro ve makro değerini kullanacağınızdan emin olmayabilirsiniz. Karışıklığı önlemek için yalnızca makroyu _ITERATOR_DEBUG_LEVEL kullanmanızı öneririz. Bu tabloda, var olan kodun çeşitli değerleri _SECURE_SCL _HAS_ITERATOR_DEBUGGING ve için kullanılacak eşdeğer _ITERATOR_DEBUG_LEVEL makro değeri açıklanmaktadır.
_ITERATOR_DEBUG_LEVEL |
_SECURE_SCL |
_HAS_ITERATOR_DEBUGGING |
|---|---|---|
| 0 (Varsayılan sürüm) | 0 (devre dışı) | 0 (devre dışı) |
| 1 | 1 (etkin) | 0 (devre dışı) |
| 2 (Varsayılan hata ayıklama) | (ilgili değil) | 1 (Hata ayıklama modunda etkin) |
denetlenen yineleyicilerle ilgili uyarıları devre dışı bırakma hakkında bilgi için bkz _SCL_SECURE_NO_WARNINGS. .
Örnek
Makro için bir değer belirtmek için, komut satırında tanımlamak üzere _ITERATOR_DEBUG_LEVEL bir /D derleyici seçeneği kullanın veya kaynak dosyalarınıza C++ Standart Kitaplığı üst bilgileri eklenmeden önce kullanın #define . Örneğin, komut satırında sample.cpp hata ayıklama modunda derlemek ve hata ayıklama yineleyicisi desteğini kullanmak için makro tanımını belirtebilirsiniz_ITERATOR_DEBUG_LEVEL:
cl /EHsc /Zi /MDd /D_ITERATOR_DEBUG_LEVEL=1 sample.cpp
Kaynak dosyada, yineleyicileri tanımlayan standart kitaplık üst bilgilerinden önce makroyu belirtin.
// sample.cpp
#define _ITERATOR_DEBUG_LEVEL 1
#include <vector>
// ...
Ayrıca bkz.
Denetlenmiş Yineleyiciler
Hata Ayıklama Yineleyici Desteği
Güvenli Kitaplıklar: C++ Standart Kitaplık