Похоже, что в Ubuntu 18.04 поставляемый по умолчанию g ++ (версия 7.3.0) по умолчанию работает в режиме, совместимом с C ++ 11. Я получаю некоторые ошибки в моих старых кодах, которые не совместимы с C ++ 11. Я установил g ++ - 6 (версия 6.4.0), и программы компилируются нормально. Можно ли отключить режим C ++ 11 в g ++ - 7?
11
std::auto_ptr
, или использовалиauto
в своем первоначальном облике, или у них сейчас незаконные сужающие преобразования, или они использовалиexport
, или, или, илиОтветы:
Попробуйте добавить
-std=gnu++98
, это было, вероятно, по умолчанию для gcc 6.4.0.Пример:
источник
-D_GLIBCXX_USE_CXX11_ABI=0
а также-std=gnu++03
для последнего стандарта перед C ++ 11. Также стоит упомянуть, что-std=c++03
будут отключены некоторые расширения GNU, несовместимые со строгим ISO C ++.__cplusplus
: Как определить версию стандарта C ++, используемую компилятором?Из
man g++
вы можете выбрать между различными диалектами:источник