作 者:羅能 著
定 價:109
出 版 社:機械工業出版社
出版日期:2022年06月01日
頁 數:312
裝 幀:平裝
ISBN:9787111708223
本書為第一本本版的C++20高級編程書籍,作者為華為海思高級工程師,其技術能力出眾,在華為技術圈很有知名度,常年活躍在GitHub,其技術文章受到廣大網友的關注與轉載。本書是作者多年編程經驗的總結,除了詳解C++20的概念約束、協程、Ranges、模塊等新特征外,還重點講述庫、框架開發的高級編程技術,以獨特的視角和豐富的案例幫助讀者掌握C++20。隨書附贈全部案例源碼。
●序
前言
第1章 類型與對像
1.1 類型的作用
1.2 現代C++中對類型處理能力的演進
1.3 值類別(value category)
1.3.1 理解左值與右值
1.3.2 函數形參何時使用何種引用
1.3.3 轉發引用與完美轉發
1.4 類型推導
1.4.1 auto類型推導
1.4.2 decltype類型推導
1.4.3 decltype(auto)類型推導
1.4.4 std::decl函數
1.4.5 類模板參數推導(CTAD)
1.5 函數對像
1.5.1 定義函數對像
1.5.2 lambda表達式
1.5.3 函數適配器
1.6 運行時多態
1.6.1 運行時多態手段
1.6.2 subtype多態vsadhoc多態
1.7 調試手段
1.7.1 編譯時打印方案
1.7.2 運行時打印方案
1.7.3 使用外部工具
第2章 編譯時多態
2.1 函數重載機制
2.1.1 名稱查找
2.1.2 模板函數處理
2.1.3 重載決議
2.1.4 注意事項
2.1.5 再談SFINAE
2.2 類型特征(Type traits)
2.2.1 Type traits謂詞與變量模板
2.2.2 類型變換
2.2.3 輔助類
2.2.4 空基類優化
2.2.5 實現Type traits
2.2.6 類型內省
2.2.7 enable函數
2.2.8 標簽分發
2.2.9 if constexpr
2.2.10 voi函數
2.3 奇異遞歸模板
2.3.1 代碼復用
2.3.2 靜態多態
2.3.3 enable_shared_from_this模板類
2.4 表達式模板
2.4.1 標量延遲計算
2.4.2 向量延遲計算
2.4.3 提高表達力
2.5 注意事項
第3章 概念約束
3.1 定義概念
3.2 requires表達式
3.2.1 簡單要求
3.2.2 類型要求
3.2.3 復合要求
3.2.4 嵌套要求
3.2.5 注意事項
3.3 requires子句
3.4 約束的偏序規則
3.4.1 約束表達式歸一化
3.4.2 簡單約束的包含關繫
3.4.3 一般約束的包含關繫
3.4.4 using類型別名與concept表達式別名
3.5 概念標準庫<concepts>
3.5.1 same_as(與某類相同)
3.5.2 derived_from(派生自某類)
3.5.3 convertible_to(可轉換為某類)
3.5.4 算術概念
3.5.5 值概念
3.5.6 invocable(可調用的)
3.6 綜合運用之擴展transform變換算法
3.7 注意事項
第編程介紹
4編程歷史
4.2 模板歷史
4.3 constexpr歷史
4編程能力與應用
4.4.1 零成本抽像
4.4.2 值計算
4.4.3 類型計算
4.4.4 編譯時多態
4.4.5 類型安全
4.4.6 泛型編程
4.4.7 靜態反射
4.4.8 內部領域特定語言EDSL
……
本書主要講解C++庫、框架開發中的高級編程技術,以及近期新的C++20標準特性。全書共10章,分別為:類型與對像、編譯時多態、概念編程介紹編程、conste編程、Ranges標準庫、協程、模塊、綜合運用。其中C++20的四大特性獨立成章,一些小的特性則貫穿於全書,其他章節則探討了面向編程、函數式編程、並發編程等話題。 本書針對以上新特性準備了豐富的代碼樣例,並隨書附贈全部案例源碼。相信通過這些代碼,讀者很容易掌握這些新特性。作為一本講解C++高級編程的書,本書還探討編程話題,這是作為庫開發必不可少的技能,它們也將隨著C++的演進而不斷演進,大大提升庫開發者的編程體驗,尤其是近年來C++的標準提案經歷了編程向conste編程轉換的過程。 本書適合中高級C++程序員、架構師、框架開發者閱讀,閱讀前優選能夠掌握一些現代C++等
羅能 著
羅能,華為海思高級工程師,2015年獲得安徽省ACM編程競賽全省 ,2018年獲得華為無線編程競賽冠軍。知乎《魅力C++》專欄作者,累計收獲6000+贊,7000+收藏,閱讀量超100萬。熟悉面向對像編程、函數式編程,經常活躍於開源社區,為開源社區貢獻過多項代碼,GitHub累計收獲1300+星。