我有一個非常大的C++代碼庫(不是自己寫的)。許多圖書館,有些不是那麼重的語法,有的非常如此。 其中有大量使用Boost,一些Eigen。gnu C++ 0x向後兼容性狀態 - 我可以打開它並繼續嗎?
我只是喜歡0x的一些新功能,並且一個快速編譯/測試告訴我,它似乎都很好。 This question,and this one暗示有些東西聞起來很有趣。
我現在的狀態是:
- gcc4.4.3
- libstC++ 6-4.4
- 升壓1.40
- 徵3.0 - 使用
std=c++0x
標誌beta3版
。
我知道標準委員會對向後兼容性和忍受嚴重的痛苦感到痛苦。 我的問題是,它工作?我可以採取所有的代碼,切換C++ 0x並確定,一切都不僅編譯,但也按預期工作?
我不使用高0x魔術,只是auto
和一些通常的收藏夾明確標記爲「實施」GNU C++0x status。
嘗試新的熱門語言,它被稱爲C89 :)。適用於一切。你甚至可以在你的C++編譯器中使用它!保證不中斷升級。 – 2011-03-26 12:28:25
像「sizeof('a')」這樣的東西在由C++編譯器編譯時會產生不同的結果,因此即使使用C89也不能保證。但是有沒有任何C++ 98代碼在C++ 0x下靜靜地改變行爲的非人爲的例子? – Clinton 2011-03-28 00:24:16
@Clinton:查看http://stackoverflow.com/questions/5759232/stdvector-default-construction-c0x-and-breaking-changes – 2011-04-27 07:38:15