C++11各編譯器支持狀況對比

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

注:這裏我並無詳細描述非語言併發性變化,由於三大編譯器對非語言併發性的支持狀況依然有限。ide

94_120813143229_1.png

94_120813143245_1.png

94_120813143304_1.png

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

你能夠使用類型推斷、移動語義、右值引用、nullptr,static_assert,range-based參考對比,同時你還能夠使用最終和重寫關鍵字來進行友好的控制。此外,你還能夠經過Enums(例舉)強類型和提早聲明,這裏有幾個改進後的模板包括extern keyword。線程

然而,Visual Studio並不支持較多請求的可變參數模板。另外一方面,可變參數宏在這三款編譯器中只支持C99標準。繼承構造函數和廣義屬性這些特性並非在任何地方都能得到支持。本地線程存儲是是支持狀況最好的一部分(經過非關鍵字標準)。繼承

總的來講,我認爲C++11的發展仍是很不錯的,至少C++11的子集適用於跨平臺項目開發。開發

相關文章
相關標籤/搜索