system_header
pragma
Behandeln Sie den Rest der Datei als extern für Diagnoseberichte.
Syntax
#pragma system_header
Hinweise
Der system_header
pragma Compiler weist den Compiler an, diagnosen auf der Ebene anzuzeigen, die durch die /external:Wn
Option für den Rest der aktuellen Quelldatei angegeben ist. Weitere Informationen zum Angeben externer Dateien und der externen Warnstufe für den Compiler finden Sie unter /external
.
Dies system_header
pragma gilt nicht über das Ende der aktuellen Quelldatei. Anders ausgedrückt: Sie gilt nicht für Dateien, die diese Datei enthalten. Dies system_header
pragma gilt auch, wenn keine anderen Dateien als extern für den Compiler angegeben werden. Wenn jedoch keine /external:Wn
Optionsstufe angegeben ist, stellt der Compiler möglicherweise eine Diagnose aus und verwendet dieselbe Warnstufe , die sie auf nicht externe Dateien anwendet. Andere pragma Direktiven, die sich auf das Warnungsverhalten auswirken, gelten nach einem system_header
pragma. Die Wirkung von #pragma system_header
ist ähnlich wie die warning pragma
:
// If n represents the warning level specified by /external:Wn,
// #pragma system_header is roughly equivalent to:
#pragma warning( push, n )
// . . .
// At the end of the file:
#pragma warning( pop )
Das system_header
pragma ist ab Visual Studio 2019, Version 16.10, verfügbar.
Beispiel
In diesem Beispielheader wird gezeigt, wie der Inhalt einer Datei als extern markiert wird:
// library.h
// Use /external:Wn to set the compiler diagnostics level for this file's contents
#pragma once
#ifndef _LIBRARY_H // include guard for 3rd party interop
#define _LIBRARY_H
#pragma system_header
// The compiler applies the /external:Wn diagnostic level from here to the end of this file.
// . . .
// You can still override the external diagnostic level for warnings locally:
#pragma warning( push )
#pragma warning( error : 4164 )
// . . .
#pragma warning(pop)
// . . .
#endif
Siehe auch
/external
warning pragma
/Wn
(Compilerwarnstufe)
PragmaDirektiven und Schlüsselwörter __pragma
_Pragma