Я пытаюсь скомпилировать некоторый несоответствующий код в 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, где решение, представленное в вышеупомянутом вопросе, не работает. Я даже включил пример.
Задача ещё не решена.
Других решений пока нет …