C++11各編譯器支援情況對比

發表於2012-08-14

英文出自:cpprocks,翻譯:夏夢竹@CSDN

C++11標準在去年8月份獲得一致通過,這是自1998年後C++語言第一次大修訂,對C++語言進行了改進和擴充。迄今為止已整整一年啦!想知道C++11在這一年裡的發展情況如何嗎?本文我們一起來看下C++11在VS11 (Visual Studio 2012)、g++ 4.7和Clang 3.1三大編譯器支援情況。

注:這裡我並沒有詳細描述非語言併發性變化,因為三大編譯器對非語言併發性的支援情況依然有限。

C++11各編譯器支援情況對比

C++11各編譯器支援情況對比

C++11各編譯器支援情況對比

Clang在大多數C++11功能實現上處於領先地位,而Visual Studio則稍顯落後。當然,這三個編譯器都有著不錯的子集適用於跨平臺開發。

你可以使用型別推斷、移動語義、右值引用、nullptr,static_assert,range-based參考對比,同時你還可以使用最終和重寫關鍵字來進行友好的控制。此外,你還可以通過Enums(例舉)強型別和提前宣告,這裡有幾個改進後的模板包括extern keyword。

然而,Visual Studio並不支援較多請求的可變引數模板。另一方面,可變引數巨集在這三款編譯器中只支援C99標準。繼承建構函式和廣義屬性這些特性並不是在任何地方都能獲得支援。本地執行緒儲存是是支援情況最好的一部分(通過非關鍵字標準)。

總的來說,我認為C++11的發展還是很不錯的,至少C++11的子集適用於跨平臺專案開發。

相關文章