Hin und wieder ist es schwierig, C ++ - Code zu schreiben, der überhaupt keine Warnungen ausgibt. Es ist jedoch eine gute Idee, Warnungen zu aktivieren. Daher ist es häufig erforderlich, Warnungen für ein bestimmtes Konstrukt zu deaktivieren und in allen anderen Codeteilen zu aktivieren.
Ich habe bisher zwei Möglichkeiten gesehen, dies zu tun.
Der erste ist zu verwenden #pragma warning( push )
und #pragma warning( pop )
:
#pragma warning( push )
#pragma warning( disable: ThatWarning )
//code with ThatWarning here
#pragma warning( pop )
Die zweite ist zu verwenden #pragma warning( default )
:
#pragma warning( disable: ThatWarning )
//code with ThatWarning here
#pragma warning( default: ThatWarning )
Das Problem, das ich in der zweiten Variante sehe, ist, dass die ursprüngliche Warnstufe verworfen wird - die Warnung war möglicherweise zuvor deaktiviert oder die Warnstufe wurde möglicherweise geändert. Die Verwendung default
würde diese Änderungen verwerfen.
Der erste Ansatz sieht sauber aus. Gibt es irgendwelche Probleme damit? Gibt es bessere Möglichkeiten, dies zu erreichen?