0、本章內容:
移動語義和右值引用。
Lambda表達式。
包裝器模板function。
可變參數模板。
1、複習前面介紹過的C++11功能:
1.1 新類型
1.2 統一的初始化
1.3 聲明
1.4 智能指針
1.5 異常規範方面的修改
1.6 作用域內枚舉
1.7 對類的修改
1.8 模板和STL方面的修改
1.9 右值引用
2、移動語義和右值引用:
2.1 爲什麼需要移動語義
2.2 一個移動示例
2.3 移動構造函數解析
移動構造參數不能是const,因爲移動改變了源對象。
2.4 賦值
移動賦值參數不能是const,因爲移動改變了源對象。
2.5 強制移動
move()函數。
沒有移動則用複製,沒有複製則報錯。
3、新的類功能:
3.1 特殊的成員函數
移動和複製,其一定義,另一則非默認。
3.2 默認的方法和禁用的方法
default創建默認方法,delete禁用方法。
default只能用於特殊成員函數。
3.3 委託構造函數
3.4 繼承構造函數
使得所有重載版本都可用。
3.5 管理虛方法:override和final
參數列表不同是隱藏,參數列表相同是覆蓋。
隱藏調用聲明類型,覆蓋調用實際類型,派生類找不到就去基類找。
並非關鍵字,可用作常規標識符。
4、Lambda函數:
4.1 比較函數指針、函數符和Lambda函數
generate隨機生成,count_if計算總數。
僅當Lambda表達式完全由一條返回語句組成時,自動類型推斷才管用。
4.2 爲何會使用Lambda
5、包裝器:
5.1 包裝器function及模板的低效性
5.2 修復問題
5.3 其他方式
6、可變參數模板:
6.1 模板和函數參數包
6.2 展開參數包
6.3 在可變參數模板函數中使用遞歸
7、C++11新增的其他功能:
7.1 並行編程
7.2 新增的庫
7.3 低級編程
7.4 雜項
8、語言變化:
8.1 Boost項目
8.2 TR1
8.3 使用Boost
9、接下來的任務:
null。
10、總結:
null。