GCC: выдавать предупреждения при использовании c ++ 11 - PullRequest
0 голосов
/ 20 сентября 2018

Учитывая

Кроссплатформенный проект C ++, который должен быть построен на некоторых древних платформах Windows Mobile.Однако разработка ведется с помощью GCC.

Проблема

Каждый раз, когда используется функция C ++ 11, она будет собираться локально, но не будет работать на сервере сборки (мобильные окна).

Вопрос

Можно ли настроить GCC так, чтобы он как-то предупреждал, если в нашей базе кода используется функция C ++ 11 (исключая другие зависимости от исходного кода).

Что вы пробовали?

Я знаю об использовании -std=c++98 -pedantic, но:

  1. Я хотел бы использовать новейший компиляторстандарт на платформе Linux
  2. Существуют некоторые сторонние зависимости только для Linux (сборка из исходного кода), для которых требуется C ++ 11

1 Ответ

0 голосов
/ 21 сентября 2018

Создайте код, необходимый для совместимости с C ++ 98, с помощью флагов C ++ 98.

Создайте код, необходимый для совместимости с C ++ 11, с помощью флагов C ++ 11.

Изучите документацию компилятора и стандартной библиотеки, используемой для обеспечения совместимости ABI между кодом, созданным с C ++ 98 и C ++ 11;вам, возможно, придется (например) использовать строки C ++ 98 в вашем коде C ++ 11, чтобы обеспечить совместимость с ABI, при условии, что вы передаете std::string s между базами кода C ++ 98 и C ++ 11.

Вы не можете одновременно использовать C ++ 11 и не использовать C ++ 11 при сборке одного и того же файла, если только вы не создадите его дважды.Который также вариант;собрать C ++ 98-совместимый материал дважды, один раз с C ++ последний раз и один раз с C ++ 98Выбросьте сборку C ++ 98 после остановки ошибок и предупреждений.

...