system_header
pragma
Trate el resto del archivo como externo para los informes de diagnóstico.
Sintaxis
#pragma system_header
Comentarios
system_header
pragma indica al compilador que muestre los diagnósticos en el nivel especificado por la opción /external:Wn
para el resto del archivo de origen actual. Para obtener más información sobre cómo especificar archivos externos y el nivel de advertencia externo para el compilador, consulte /external
.
system_header
pragma no se aplica después del final del archivo de origen actual. En otras palabras, no se aplica a los archivos que incluyen este archivo. El system_header
pragma aplica incluso si no se especifica ningún otro archivo como externo al compilador. Sin embargo, si no se especifica ningún nivel de opción /external:Wn
, el compilador puede emitir un diagnóstico y usa el mismo nivel de advertencia que se aplica a archivos no externos. Otras directivas pragma que afectan al comportamiento de advertencia se siguen aplicando después de system_header
pragma. El efecto de #pragma system_header
es similar a 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 está disponible a partir de la versión 16.10 de Visual Studio 2019.
Ejemplo
Este encabezado de ejemplo muestra cómo marcar el contenido de un archivo como externo:
// 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
Consulte también
/external
warning pragma
/Wn
(Nivel de advertencia del compilador)
Pragmadirectivas y las __pragma
palabras clave y _Pragma