Sdílet prostřednictvím


system_header pragma

Zacházejte se zbytkem souboru jako s externími sestavy diagnostiky.

Syntaxe

#pragma system_header

Poznámky

Říká system_headerpragma kompilátoru, aby zobrazil diagnostiku na úrovni určené /external:Wn možností pro zbytek aktuálního zdrojového souboru. Další informace o tom, jak určit externí soubory a úroveň externího upozornění kompilátoru, naleznete v tématu /external.

Nevztahuje system_headerpragma se na konec aktuálního zdrojového souboru. Jinými slovy se nevztahuje na soubory, které tento soubor obsahují. Platí system_headerpragma i v případě, že nejsou žádné jiné soubory zadány jako externí pro kompilátor. Pokud ale není zadána žádná /external:Wn úroveň možností, může kompilátor vydat diagnostiku a použije stejnou úroveň upozornění, jakou platí pro ne externí soubory. Další pragma direktivy, které mají vliv na chování upozornění, stále platí po system_headerpragma. Účinek #pragma system_header je podobný 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 )

Je system_headerpragma k dispozici od sady Visual Studio 2019 verze 16.10.

Příklad

Tato ukázková hlavička ukazuje, jak označit obsah souboru jako externí:

// 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

Viz také

/external
warning pragma
/Wn (Úroveň upozornění kompilátoru)
Pragma direktivy a __pragma _Pragma klíčová slova