我讀這個有點困惑:Gcc 4.5 online manual --- Standards section。g ++標準支持
他們解釋這
原來的ISO C++標準發佈爲ISO標準(ISO/IEC 14882:1998),並發表在2003年(ISO/IEC 14882:2003)一技術勘誤修改。這些標準分別被稱爲C++ 98和C++ 03。 GCC實現了C++ 98的大部分(導出是一個顯着的例外)以及C++ 03中的大部分更改。
但他們不知道gcc是否支持'裸'98 C++或只修正C++ 03。在「C語言」部分,解釋更加清晰:
1999 ISO ISO標準中的錯誤已在2001,2004和2007年發佈的三份技術勘誤中得到糾正.GCC不支持未糾正的版本。
所以我的問題是:g ++是否也是這種情況(不支持未修正的標準)?
選擇g ++標準的唯一選項是-std=c++98
,-std=gnu++98
,-std=c++0x
和-std=gnu++0x
。那是對的嗎 ?
最後一個問題:什麼是-ansi
選項呢?它僅用於C模式嗎?
編輯:
-ansi同義詞用於-std = C89(對於C)或-std = C++ 98
*你爲什麼要支持未修正的標準? – 2010-08-29 18:37:04
這是一個問題,以檢查我是否正確理解了C++ 98,C++ 03等與gcc doc之間的關係;不是「我想要」。 – 2010-08-29 20:38:53
請注意,C++ 03標準文本和C++ 98文本之間的顯着差異是澄清了歧義等 - 當編譯器試圖實現C++ 98時發現的變化。在那裏,GCC無法合理支持C++ 98。 – MSalters 2010-08-30 11:05:16