1. 程式人生 > 實用技巧 >深入理解C++11 | C++11新特性一覽

深入理解C++11 | C++11新特性一覽

文章目錄


注:本書參考自 《深入理解C++11:C++11新持性解析與應用》一書,其中大多數案例程式碼都來自書中的示例程式碼,本部落格只進行了簡單的歸納和整理 。


一、C++11新特性

C++11在C++98/03的基礎上做出了大幅度的改進,通過C++11的新語法規則為我們創造了很多更有效、更便捷的程式碼編寫方式 。

程式設計師可以用簡短的程式碼來完成C++98/03中同樣的功能,簡單到你驚呼“天哪,怎麼能這麼簡單”。從一些簡單的資料統計上看,比起C++98/03,C++11大大縮短了程式碼編寫量,依情況最多可以將程式碼縮短30%~80%。

C++11新引入的特性

其中,C++11相對於C++98/03有顯著的增強,主要包括以下幾點:

 ❑ 通過記憶體模型、執行緒、原子操作等來支援本地並行程式設計(Native Concurrency)。

 ❑ 通過統一初始化表示式、auto、declytype、移動語義等來統一對泛型程式設計的支援。

 ❑ 通過constexpr、POD(概念)等更好地支援系統程式設計。

 ❑ 通過內聯名稱空間、繼承建構函式和右值引用等,以更好地支援庫的構建。

C++11主要的新語言特性(中英文對照)

在這裡插入圖片描述

——圖片來自《深入理解C++11》

為了相容以前的標準同時保證程式的穩定性,在C++11中對部分關鍵字進行了重定義,又增加了一些新的關鍵字。

C++11的新關鍵字如下

 ❑ alignas
 ❑ alignof decltype
 ❑ auto(重新定義)
 ❑ static_assert
 ❑ using(重新定義)
 ❑ noexcept
 ❑ export(棄用,不過未來可能留作他用)
 ❑ nullptr
 ❑ constexpr
 ❑ thread_local


推薦閱讀《深入理解C++11 | C++11新特性一覽》一書,本部落格只引用了書中部分內容與案例 。