Wygląda na to, że w Ubuntu 18.04 domyślnie dostarczony g ++ (wersja 7.3.0) domyślnie działa w trybie kompatybilnym z C ++ 11. W moich starych kodach pojawiają się błędy, które nie są kompatybilne z C ++ 11. Zainstalowałem g ++ - 6 (wersja 6.4.0), a programy kompilują się poprawnie. Czy można wyłączyć tryb C ++ 11 w g ++ - 7?
11
std::auto_ptr
, czy kiedyśauto
w oryginalnym przebraniu, albo mają teraz-nielegalne konwersje zwężenie lub używaliexport
, albo, albo, alboOdpowiedzi:
Spróbuj dodać
-std=gnu++98
, prawdopodobnie była to domyślna wersja gcc 6.4.0.Przykład:
źródło
-D_GLIBCXX_USE_CXX11_ABI=0
także-std=gnu++03
dla ostatniego standardu przed C ++ 11. Warto również wspomnieć, że-std=c++03
wyłączy niektóre rozszerzenia GNU, które są niezgodne ze ścisłym ISO C ++.__cplusplus
: Jak ustalić wersję standardu C ++ używanego przez kompilator?Z
man g++
można wybierać pomiędzy różnymi dialektami:źródło