Compartilhar via


system_header pragma

Trate o restante do arquivo como externo para relatórios de diagnóstico.

Sintaxe

#pragma system_header

Comentários

O system_headerpragma diz para o compilador mostrar o diagnóstico no nível especificado pela opção /external:Wn para o restante do arquivo de origem atual. Para mais informações sobre como especificar arquivos externos e o nível de aviso externo para o compilador, confira /external.

O system_headerpragma não se aplica após o final do arquivo de origem atual. Em outras palavras, não se aplica a arquivos que incluem esse arquivo. O system_headerpragma se aplicará mesmo que nenhum outro arquivo seja especificado como externo ao compilador. No entanto, se nenhum nível de opção /external:Wn for especificado, o compilador poderá emitir um diagnóstico e usar o mesmo nível de aviso que se aplica a arquivos não externos. Outras diretivas pragma que afetam o comportamento de aviso ainda se aplicam após um system_headerpragma. O efeito é #pragma system_header semelhante ao 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 )

O system_headerpragma está disponível do Visual Studio 2019 versão 16.10 em diante.

Exemplo

Esse cabeçalho de exemplo mostra como marcar o conteúdo de um arquivo 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

Confira também

/external
warning pragma
/Wn (Nível de aviso do compilador)
Diretivas do Pragma e as palavras-chave do __pragma e _Pragma