Aracılığıyla paylaş


_ITERATOR_DEBUG_LEVEL

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