天天看點

《深入了解C++11:C++ 11新特性解析與應用》——1.3 C++11特性的分類

從設計目标上說,能夠讓各個特性協同工作是設計c++11/0x中最為關鍵的部分。委員會總希望通過特性協作取得整體大于個體的效果,但這也是語言設計過程中最困難的一點。是以相比于其他的各種考慮,wg21更專注于以下理念:

《深入了解C++11:C++ 11新特性解析與應用》——1.3 C++11特性的分類

根據這些設計理念可以對新特性進行分類。在本書中,我們的核心章節(第2~8章)也會按照這樣的方式進行劃分。在可能的時候,我們也會為每個理念取個有趣一點兒的中文名字。

而從使用上,scott mayers則為c++11建立了另外一種有效的分類方式,mayers根據c++11的使用者是類的使用者,還是庫的使用者,或者特性是廣泛使用的,還是庫的增強的來區分各個特性。具體地,可以把特性分為以下幾種:

《深入了解C++11:C++ 11新特性解析與應用》——1.3 C++11特性的分類

那麼我們可以結合這種分類再來看一下可以怎樣來學習所有的特性。下面我們通過設計理念和使用者群對c++11特性進行分類,如表1-3所示。

由于c++11的新特性非常多,是以本書不準備涵蓋所有内容。我們粗略地将特性劃分為核心語言特性和庫特性。而從c++11标準的章節劃分來看(讀者可以從網站上搜到接近于最終版本的草稿,正式的标準需要通過購買獲得),本書将涉及c++11标準中第1~16章的語言特性部分(在c++11語言标準中,第1~16章涵蓋了核心語言特性,第17~30章涉及庫特性),而标準庫将不在本書中描述。當然,這會導緻許多灰色地帶,因為如同我們提到的,我們總是傾向于使用庫而不是語言擴充來實作一些特性,那麼實際上,講解語言核心特性也必然涉及庫的内容。典型的,原子操作(atomics)就是這樣一個例子。是以,在本書的編寫中,我們隻是不對标準庫進行專門的講解,而與核心内容相關的庫内容,我們還是會有所描述的。

《深入了解C++11:C++ 11新特性解析與應用》——1.3 C++11特性的分類
《深入了解C++11:C++ 11新特性解析與應用》——1.3 C++11特性的分類
《深入了解C++11:C++ 11新特性解析與應用》——1.3 C++11特性的分類
《深入了解C++11:C++ 11新特性解析與應用》——1.3 C++11特性的分類

而之前我們提到過的“更傾向于使用庫而不是擴充語言來實作特性”理念的部分,如果有可能,我們會在另一本書或者本書的下一個版本中來進行講解。下面列出了屬于該設計理念下的庫特性:

《深入了解C++11:C++ 11新特性解析與應用》——1.3 C++11特性的分類
《深入了解C++11:C++ 11新特性解析與應用》——1.3 C++11特性的分類

繼續閱讀