Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обрабатывать остальную часть файла как внешний для отчетов диагностика.
Синтаксис
#pragma system_header
Замечания
Компилятор system_headerpragma сообщает компилятору отображать диагностика на уровне, указанном /external:Wn параметром для остальной части текущего исходного файла. Дополнительные сведения о том, как указать внешние файлы и уровень внешнего предупреждения компилятору, см. в статье /external.
Он system_headerpragma не применяется к концу текущего исходного файла. Другими словами, он не применяется к файлам, которые включают этот файл. Применяется system_headerpragma , даже если другие файлы не указаны как внешние для компилятора. Однако если уровень параметра не /external:Wn указан, компилятор может выдавать диагностику и использовать тот же уровень предупреждения, который применяется к не внешним файлам. Другие pragma директивы, влияющие на поведение предупреждения, по-прежнему применяются после system_headerpragma. Эффект #pragma system_header аналогичен следующему 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_headerpragma начиная с Visual Studio 2019 версии 16.10.
Пример
В этом примере заголовка показано, как пометить содержимое файла как внешний:
// 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
См. также
/external
warning pragma
/Wn (Уровень предупреждения компилятора)
директивы Pragma и ключевые слова __pragma и _Pragma