G++ 與 VC編譯器目前遇到的區別

在工作過程正,目前遇到二者編譯器的區別:

1。變量作用域的問題,VC不符合規範,即for   (int   i=0...){};
for   (int   i=0...){}類似這樣的代碼在g++和C++標準中都是合法的,而VC6不行,據說VC7可以了,不過沒有試過。
2。運行時刻類型轉換的問題。即使用dynamic_cast操作符進行類型轉換時,在VC中總是失敗,並且指針的轉換也會拋出異常。而在g++中沒有問題。按照C++規範,對指針的轉換即使失敗也不應該拋出異常,而應該返回一個空指針。只有對引用的轉換失敗才拋出異常。
3。頭文件的問題。我遇到過幾回,在g++編譯出現錯誤,但是把包含的頭文件(主要是一些涉及到STL庫的文件)的順序改變一下,程序就沒有問題了。很奇怪,我現在也不知道原因。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章