標籤:c++ c++11
l 利用{}進行所有容器和資料結構的就地初始化,還可以直接用於返回值,對自訂類型進行就地初始化使用initializer_list
l 通過右值引用,函數可以自由的返回大對象,同時帶資源賦值更加高效,由此指標可在任何情況下退出使用(庫除外)
l 全域唯一資源可封裝為只可移動不可拷貝語義
l 任何非引用資料都可以成為聯合體的成員
l final、override、virtual等指示關鍵字要經常使用
l enum變成了強型別,不可與數字隱式轉換
l friend關鍵聲明友元類時不用加class
l sizeof可以直接用於結構體成員
l 類可以就地初始化,從而節省代碼
l noexcept聲明本函數不拋出異常,如果拋出就會terminate
l 新增long long資料類型,該類型保證64位以上
l 通過自訂字面量,可以更高程度上接近書寫語言,甚至可直接使用字面量作為函數
l using broler= int 可定義類型別名,與typedef功能類似
l 模板執行個體化的>>被作為終結符合法
l 使用auto做到動態類型,最大應用在定義iterator。並且使用auto修飾的函數可以將傳回型別後置,可以直接在函數後定義傳回型別
l hash_code是RTTI新成員
l decltype使C++終於可以支援反射等新類型的變成,且其會自動去掉cv限定符
l for可以用於返回,從而可以不用for_each
l enum class可以指定枚舉的type,且為強型別
l auto_ptr被廢棄,用unique_ptr、shared_ptr、weak_ptr。unique_ptr只可移動,不可拷貝;shared_ptr是引用計數,weak_ptr可指向shared_ptr的記憶體,但計數不變,當計數為0時,返回nullptr
l C++11定義了記憶體回收,且允許使用者將特定指標不受回收
l constexpt使函數在編譯時間獲得常量性(用於switch、類)
l 可使用tuple了
l 院子類型可直接用於並行編程
l quick_exit可以快速正常退出,而不需要析構對象
l nullptr(nullptr_t)專指null 指標,不能隱式轉換到其他類型,且其為一個運行時常量,有地址
l =default、 =delete可以控制類的預設產生函數
l lamba進行函數式編程,=表示傳遞父域所有按值傳遞,&表示父域所有引用傳遞,可用於大型函數流程的子流程整理,且按值捕獲可不改動父值
l 使auto獲得lamba函數的引用,可實現複雜大函數,最大好處是可在函數內重構代碼
l 利用alignof判斷對齊數,用alignas來重新設定對齊方向,以方便高效的響亮資料處理
l 用[[ ]]定義通用屬性,應盡量多用,用於代碼最佳化
l \uXXXX可表示16位的unicode
l 字串前加R””表示原生字串,可在串內格式化
C++11 知識點