system_header
pragma
Traktuj pozostałą część pliku jako zewnętrzną dla raportów diagnostycznych.
Składnia
#pragma system_header
Uwagi
Polecenie system_header
pragma informuje kompilator o wyświetlaniu diagnostyki na poziomie określonym przez /external:Wn
opcję pozostałej części bieżącego pliku źródłowego. Aby uzyskać więcej informacji na temat określania plików zewnętrznych i zewnętrznego poziomu ostrzeżenia do kompilatora, zobacz /external
.
Element system_header
pragma nie ma zastosowania obok końca bieżącego pliku źródłowego. Innymi słowy, nie ma zastosowania do plików, które zawierają ten plik. Ma system_header
pragma zastosowanie nawet wtedy, gdy żadne inne pliki nie są określone jako zewnętrzne dla kompilatora. Jeśli jednak nie /external:Wn
określono poziomu opcji, kompilator może wydać diagnostykę i używa tego samego poziomu ostrzeżenia, który ma zastosowanie do plików innych niż zewnętrzne. Inne pragma dyrektywy, które mają wpływ na zachowanie ostrzegawcze, nadal mają zastosowanie po .system_header
pragma Efekt #pragma system_header
jest podobny do następującego: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 )
Element system_header
pragma jest dostępny od wersji 16.10 programu Visual Studio 2019.
Przykład
W tym przykładowym nagłówku pokazano, jak oznaczyć zawartość pliku jako zewnętrzny:
// 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
Zobacz też
/external
warning pragma
/Wn
(Poziom ostrzeżenia kompilatora)
dyrektywy Pragma oraz słowa kluczowe __pragma
i _Pragma