Поскольку вы уже используете linux & gcc, возможно, стоит начать использовать автоинструменты GNU.Решение проблем переносимости этого типа является одной из основных целей автоинструментов.
Автоинструменты создадут файл с именем config.h с набором #defines, который указывает на наличие или отсутствие определенных функций в вашемсреда.(В этом случае AC_CXX_EXCEPTIONS
, скорее всего, необходимая проверка.) Затем вы можете использовать теги #ifdef, чтобы препроцессор исключал код, который вы написали специально для совместимости со старым компилятором, всякий раз, когда скрипт configure считает, что они не нужны.
Первый раз, когда вы используете автоинструментальные средства, это немного сложная кривая обучения, но это одноразовые затраты времени.Они сделают каждый будущий проект намного проще в настройке.Вы также можете проверить, поддерживает ли ваша целевая машина автоинструменты, и если да, то какая версия инструментов поддерживается.