Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Makro _ITERATOR_DEBUG_LEVEL určuje, jestli jsou povoleny kontrolované iterátory a podpora ladění iterátoru. Toto makro nahrazuje a kombinuje funkce starších _SECURE_SCL a _HAS_ITERATOR_DEBUGGING maker.
Hodnoty maker
Následující tabulka shrnuje možné hodnoty makra _ITERATOR_DEBUG_LEVEL .
| Režim kompilace | Hodnota makra | Popis |
|---|---|---|
| Debug | ||
| 0 | Zakáže kontrolované iterátory a zakáže ladění iterátoru. | |
| 0 | Povolí zaškrtnuté iterátory a zakáže ladění iterátoru. | |
| 2 (výchozí) | Umožňuje ladění iterátoru; iterátory nejsou relevantní. | |
| Vydaná verze | ||
| 0 (výchozí) | Zakáže kontrolované iterátory. | |
| 0 | Umožňuje kontrolovat iterátory; Ladění iterátoru není relevantní. |
V režimu vydání kompilátor vygeneruje chybu, pokud zadáte _ITERATOR_DEBUG_LEVEL hodnotu 2.
Poznámky
Makro _ITERATOR_DEBUG_LEVEL určuje, jestli jsou zaškrtnuté iterátory povoleny , a v režimu ladění, zda je povolena podpora iterátoru ladění. Pokud _ITERATOR_DEBUG_LEVEL je definována jako 1 nebo 2, zaškrtnuté iterátory zajistí, že hranice kontejnerů nebudou přepsány. Pokud _ITERATOR_DEBUG_LEVEL je hodnota 0, iterátory se nekontrolují. Pokud _ITERATOR_DEBUG_LEVEL je definována jako 1, jakékoli nebezpečné použití iterátoru způsobí chybu za běhu a program se ukončí. Pokud _ITERATOR_DEBUG_LEVEL je definována jako 2, použití nebezpečného iterátoru způsobí assert a dialogové okno chyby za běhu, které umožňuje rozdělit do ladicího programu.
_ITERATOR_DEBUG_LEVEL Vzhledem k tomu, že makro podporuje podobné funkce _SECURE_SCL jako makra a _HAS_ITERATOR_DEBUGGING makra, možná si nejste jisti, které makro a hodnotu makra použít v konkrétní situaci. Chcete-li zabránit nejasnostem, doporučujeme použít pouze _ITERATOR_DEBUG_LEVEL makro. Tato tabulka popisuje ekvivalentní _ITERATOR_DEBUG_LEVEL hodnotu makra, která se má použít pro různé hodnoty a _HAS_ITERATOR_DEBUGGING v existujícím _SECURE_SCL kódu.
_ITERATOR_DEBUG_LEVEL |
_SECURE_SCL |
_HAS_ITERATOR_DEBUGGING |
|---|---|---|
| 0 (Výchozí verze) | 0 (zakázáno) | 0 (zakázáno) |
| 0 | 1 (povoleno) | 0 (zakázáno) |
| 2 (výchozí ladění) | (není relevantní) | 1 (povoleno v režimu ladění) |
Informace o zakázání upozornění na kontrolované iterátory naleznete v tématu _SCL_SECURE_NO_WARNINGS.
Příklad
Pokud chcete zadat hodnotu makra _ITERATOR_DEBUG_LEVEL , použijte /D možnost kompilátoru k jeho definování na příkazovém řádku nebo použijte #define před zahrnutím hlaviček standardní knihovny C++ do zdrojových souborů. Pokud chcete například zkompilovat sample.cpp v režimu ladění a použít podporu iterátoru ladění, můžete zadat definici _ITERATOR_DEBUG_LEVEL makra:
cl /EHsc /Zi /MDd /D_ITERATOR_DEBUG_LEVEL=1 sample.cpp
Ve zdrojovém souboru zadejte makro před všemi standardními hlavičkami knihovny, které definují iterátory.
// sample.cpp
#define _ITERATOR_DEBUG_LEVEL 1
#include <vector>
// ...
Viz také
Checked – iterátory
Podpora ladění iterátorů
Bezpečné knihovny: standardní knihovna C++