Можно ли выключить (определенные) предупреждения компилятора для какого-либо заголовка, включенного от определенного местоположения?

У меня есть сторонняя библиотека, которая генерирует тонну предупреждений, даже под/W3. Существует ли способ для меня сказать компилятор, "отключите C4244 для какого-либо файла, включенного из этого каталога или его подкаталогов"? Конечно, я не хочу отключать предупреждение в нашей собственной кодовой базе, и при этом я не хочу должным быть разыскивать каждое возможное, включают и переносят его с #pragma warning(...

15
задан moswald 17 July 2010 в 17:50
поделиться

4 ответа

Не хочется отвечать на свой вопрос, но боюсь, что "правильный" ответ в данном случае: это невозможно.

9
ответ дан 1 December 2019 в 03:04
поделиться

Вы можете поместить флаги, например / wd4600 в Настройки проекта VS> Параметры командной строки , чтобы указать компилятору подавить определенные предупреждения Complier.

5
ответ дан 1 December 2019 в 03:04
поделиться

Вы можете попробовать удалить сторонний проект из вашего пути включения. Затем создайте подкаталог, который имеет ту же структуру каталога и файлы заголовков, что и сторонний проект, чтобы все #includes теперь находили ваши заголовки. Затем в каждом поддельном заголовке xxxx.h вы устанавливаете прагмы, затем включаете настоящий заголовок xxxx.h, а затем очищаете прагму. Чтобы избежать рекурсивного включения одного и того же файла, вам придется добавить дополнительный каталог в #include.

Лично я бы просто просмотрел ваш проект и добавил прагмы.

3
ответ дан 1 December 2019 в 03:04
поделиться

Я не уверен, имели ли вы в виду, что не хотите заключать в инструкции include директивы #pragma , или не хотите тратить время на отслеживание правильной директивы. Если последнее, то это то, что я делал раньше:

#ifdef _MSC_VER
#pragma warning( disable : 4244 )
#endif

#include "MyHeader.h"

#ifdef _MSC_VER
#pragma warning( default : 4244 ) /* Reset to default state */
#endif
5
ответ дан 1 December 2019 в 03:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: