Có vẻ như trong Ubuntu 18.04, g ++ mặc định được vận chuyển (phiên bản 7.3.0) chạy ở chế độ tương thích C ++ 11 theo mặc định. Tôi nhận được một số lỗi trong các mã cũ không tương thích với C ++ 11. Tôi đã cài đặt g ++ - 6 (phiên bản 6.4.0) và các chương trình đang biên dịch tốt. Có thể tắt chế độ C ++ 11 trong g ++ - 7 không?
2
Trên thực tế, chế độ mặc định của GCC 6 đã là C ++ 14 . GCC 7 bổ sung hỗ trợ C ++ 17; Có lẽ chỉ cần vô hiệu hóa thứ C ++ 17 này. Không cần quay lại C ++ 11. Quay trở lại C ++ 98 thực sự là quá mức cần thiết (chưa đủ?)
—
MSalters
Bạn đã làm gì trong các chương trình cũ không tương thích? Bạn có thể đã có thể làm những việc bạn không được phép ở nơi đầu tiên do lỗi. Trong trường hợp đó, bạn sẽ không đạt được bất cứ điều gì từ việc chuyển sang c ++ 98.
—
whn
@snb: Hoặc họ đã sử dụng
—
Lightness Races ở Orbit
std::auto_ptr
, hoặc họ đã sử dụng auto
trong chiêu bài ban đầu của nó, hoặc họ có chuyển đổi hẹp bây giờ bất hợp pháp, hoặc họ đã sử dụng export
, hay, hoặc, hoặc
@LightnessRacesinOrbit Hầu hết điều đó sẽ là thực hành kém trước C ++ 11.
—
whn