2013-02-06 146 views
0

在C++ 98標準下編寫的代碼是否適用於較新的編譯器,比如g ++。或者它不起作用。假設簡單的「Hello World」程序可以工作,但複雜的命令行程序又如何?用新編譯器編譯使用C++ 98標準編寫的代碼?

+1

爲什麼不呢? – Rapptz

+0

只需閱讀C++ 03和C++ 11標準末尾的不兼容性列表,即可獲得詳盡的列表。 –

+0

標準委員會對打破與現有代碼的兼容性非常保守,所以這不應該是一個主要問題。 –

回答

2

-std=命令行參數g++允許您針對特定版本的標準進行編譯。

參見:http://linux.die.net/man/1/g++

如果將來G ++(這適用於任何編譯器我想)的作者決定將默認使用標準的不兼容的版本,這種說法會讓您編譯舊的代碼。

如果g ++的作者完全放棄C++ 98支持,它應該停止工作。只有當C++ 98代碼的數量變得如此之小或新標準與它不兼容時,我纔會看到這種情況的發生,因此更容易讓人們更新所有代碼而不是繼續支持它。無論如何,這應該是一個漸進的和可預見的變化。

+0

好的,謝謝,但是這並沒有回答這個問題。這比任何事情都更理論。 – MarJamRob

+0

@MarJamRob:編輯 – Vlad

+0

注意:我正在回答C++ 98是否可以使用較新的編譯器進行編譯的問題,而不是C++ 98與新標準的兼容性問題。 – Vlad

相關問題