Как подавить ошибку -fpermissive, используя современный gcc?

Я пытаюсь скомпилировать некоторый несоответствующий код в C ++ 17, но застрял в следующей проблеме.

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-fpermissive"
Some code that compiles only when with -fpermissive flag is set

#pragma GCC diagnostic pop

прекрасно компилируется в версиях gcc с 4.6.4 по 4.7.4, но все более поздние версии gcc выдают мне следующее предупреждение и не подавляют ошибку.

warning: ‘-fpermissive’ is not an option that controls warnings [-Wpragmas]
#pragma GCC diagnostic ignored "-fpermissive"

Когда я пишу (от отчаяния)

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpragmas"#pragma GCC diagnostic ignored "-fpermissive"
Some code that compiles only when with -fpermissive flag is set

#pragma GCC diagnostic pop

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

Сжатый пример https://godbolt.org/g/KFd5Ke

Этот вопрос не является дубликатом В gcc как отключить -fpermissive предупреждение? так как это направлено на более новые версии gcc, где решение, представленное в вышеупомянутом вопросе, не работает. Я даже включил пример.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]