system_header
pragma
Behandla resten av filen som extern för diagnostikrapporter.
Syntax
#pragma system_header
Anmärkningar
system_header
pragma instruerar kompilatorn att visa diagnostik på den nivå som anges av alternativet /external:Wn
för resten av den aktuella källfilen. Mer information om hur du anger externa filer och den externa varningsnivån för kompilatorn finns i /external
.
system_header
pragma gäller inte efter slutet av den aktuella källfilen. Med andra ord gäller det inte för filer som innehåller den här filen.
system_header
pragma gäller även om inga andra filer anges som externa för kompilatorn. Men om ingen /external:Wn
alternativnivå anges kan kompilatorn utfärda en diagnostik och använda samma varningsnivå den gäller för icke-externa filer. Andra pragma direktiv som påverkar varningsbeteendet gäller fortfarande efter en system_header
pragma. Effekten av #pragma system_header
liknar 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 )
system_header
pragma är tillgänglig från och med Visual Studio 2019 version 16.10.
Exempel
Det här exempelhuvudet visar hur du markerar innehållet i en fil som externt:
// 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
Se även
/external
warning pragma
/Wn
(kompilatorvarningsnivå)
Pragma-direktiv och nyckelorden __pragma
och _Pragma