Подтвердить что ты не робот

В gcc, как отключить предупреждающее предупреждение?

Я включаю файл из сторонней библиотеки, который вызывает ошибку, которая может быть понижена до предупреждения с помощью -fpermissive. Но поскольку я не хочу "загрязнять" мой журнал компиляции этими предупреждениями, я хочу полностью отключить эти сообщения.

До сих пор я устанавливал параметр -fpermissive с диагностической прагмой при включении файла; что-то вроде:

#pragma GCC diagnostic push
#pragma GCC diagnostic warning "-fpermissive"

#include <third-party-file.h>

#pragma GCC diagnostic pop

Поскольку gcc обычно предоставляет как "положительную", так и "отрицательную" версию флагов -f, я думал об игнорировании функции "без разрешающей способности":

#pragma GCC diagnostic ignored "-fno-permissive"
#include <third-party-file.h>

Но, похоже, не существует "отрицательной" версии флага -fpermissive (я использую gcc 4.6.3, но даже версия 4.7.0 не имеет это).

Есть ли вероятность, что я смогу имитировать это поведение? Спасибо!

4b9b3361

Ответ 1

Возможно, это немного поздно для этого, но одно из них должно делать то, что вы хотели:

#pragma GCC diagnostic ignored "-fpermissive"

или

#pragma GCC diagnostic ignored "-pedantic"

"игнорируется" - это то, как вы полностью отказываетесь от диагностики, а инверсия -fpermissive - -pedantic по историческим причинам.