Как подавить ошибку -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
Этот вопрос не является дубликатом In gcc, как отключить -fpermissive предупреждение? так как это направлено на более новые версии gcc, где решение, представленное в вышеупомянутом вопросе, не работает. Я даже включил пример.