Sepertinya di Ubuntu 18.04, default yang dikirimkan g ++ (versi 7.3.0) berjalan dalam mode yang kompatibel dengan C ++ 11 secara default. Saya mendapatkan beberapa kesalahan dalam kode lama saya yang tidak kompatibel dengan C ++ 11. Saya menginstal g ++ - 6 (versi 6.4.0) dan program-programnya dikompilasi dengan baik. Apakah mungkin untuk menonaktifkan mode C ++ 11 di g ++ - 7?
11
std::auto_ptr
, atau mereka menggunakanauto
kedok aslinya, atau mereka sekarang memiliki konversi penyempitan ilegal, atau mereka menggunakanexport
, atau, atau,Jawaban:
Coba tambahkan
-std=gnu++98
, itu mungkin default untuk gcc 6.4.0.Contoh:
sumber
-D_GLIBCXX_USE_CXX11_ABI=0
juga-std=gnu++03
untuk standar terakhir sebelum C ++ 11. Juga patut disebutkan bahwa-std=c++03
akan menonaktifkan beberapa ekstensi GNU yang tidak kompatibel dengan ISO C ++ yang ketat.__cplusplus
: Bagaimana menentukan versi standar C ++ yang digunakan oleh kompiler?Dari
man g++
Anda dapat memilih antara dialek yang berbeda:sumber