幫助中心 | 我的帳號 | 關於我們

C++20高級編程/電腦前沿技術叢書

  • 作者:羅能|責編:李曉波
  • 出版社:機械工業
  • ISBN:9787111708223
  • 出版日期:2022/06/01
  • 裝幀:平裝
  • 頁數:298
人民幣:RMB 109 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書主要講解C++庫、框架開發中的高級編程技術,以及最新的C++20標準特性。全書共10章,分別為:類型與對象、編譯時多態、概念約束、元編程介紹、模板元編程、constexpr元編程、Ranges標準庫、協程、模塊、綜合運用。其中C++20的四大特性獨立成章,一些小的特性則貫穿于全書,其他章節則探討了面向對象、元編程、函數式編程、併發編程等話題。
    本書針對以上新特性準備了豐富的代碼樣例,並隨書附贈全部案例源碼。相信通過這些代碼,讀者很容易掌握這些新特性。作為一本講解C++高級編程的書,本書還探討了很多元編程話題,這是作為庫開發必不可少的技能,它們也將隨著C++的演進而不斷演進,大大提升庫開發者的編程體驗,尤其是近年來C++的標準提案經歷了從模板元編程向constexpr元編程轉換的過程。
    本書適合中高級C++程序員、架構師、框架開發者閱讀,閱讀前最好能夠掌握一些現代C++的知識。對於想要系統性學習C++20並進階C++技能的讀者,一定不要錯過本書。

作者介紹
羅能|責編:李曉波
    羅能,華為高級工程師,2015年獲得安徽省ACM編程競賽全省第一名,2018年獲得華為無線編程競賽冠軍。知乎《魅力C++》專欄作者,累計收穫6000+贊,7000+收藏,閱讀量超100萬。熟悉面向對象編程、函數式編程,經常活躍于開源社區,為開源社區貢獻過多項代碼,GitHub累計收穫1300+星。

目錄

前言
第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::declval元函數
    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多態vsad?hoc多態
  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_if元函數
    2.2.8  標籤分發
    2.2.9  if constexpr
    2.2.10  void_t元函數
  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.1  元編程歷史
  4.2  模板歷史
  4.3  constexpr歷史
  4.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
第5章  模板元編程
  5.1  模板vs宏
    5.1.1  泛型函數
    5.1.2  泛型容器
  5.2  模板類元函數
    5.2.1  數值計算
    5.2.2  類型計算
  5.3  TypeList
    5.3.1  基本方法
    5.3.2  高階函數
    5.3.3  常用演算法

  5.4  綜合運用
    5.4.1  全局最短路徑
    5.4.2  KV數據表
    5.4.3  注意事項
第6章  constexpr元編程
  6.1  constexpr變數
  6.2  constinit初始化
  6.3  摺疊表達式
  6.4  constexpr函數
    6.4.1  consteval
    6.4.2  編譯時內存分配
    6.4.3  編譯時虛函數
    6.4.4  is_constant_evaluated
    6.4.5  停機問題
    6.4.6  檢測未定義行為
  6.5  非類型模板參數
  6.6  constexpr與TypeList
    6.6.1  類型、值的包裹類
    6.6.2  高階函數
    6.6.3  管道操作符
    6.6.4  重構KV數據表
  6.7  綜合運用之編譯時字元串操作
第7章  Ranges標準庫
  7.1  range訪問操作
    7.1.1  ranges::begin
    7.1.2  ranges::end
    7.1.3  ranges::size
    7.1.4  ranges::empty
    7.1.5  ranges::data
  7.2  range相關概念
    7.2.1  range
    7.2.2  borrowed_range
    7.2.3  sized_range
    7.2.4  view
    7.2.5  其他概念
  7.3  range實用組件
    7.3.1  view_interface
    7.3.2  subrange
    7.3.3  ref_view
  7.4  range工廠
    7.4.1  empty_view
    7.4.2  single_view
    7.4.3  iota_view
    7.4.4  istream_view
  7.5  range適配器
    7.5.1  適配器對象
    7.5.2  all
    7.5.3  filter
    7.5.4  transform
    7.5.5  take

    7.5.6  take_while
    7.5.7  drop
    7.5.8  drop_while
    7.5.9  join
    7.5.10  split
    7.5.11  common
    7.5.12  reverse
    7.5.13  elements
  7.6  其他改善
    7.6.1  迭代器概念
    7.6.2  演算法介面改善
  7.7  綜合運用
    7.7.1  矩陣乘法
    7.7.2  日曆程序
    7.7.3  注意事項
第8章  協程
  8.1  協程的起源
  8.2  協程初探
  8.3  函數與協程理論
  8.4  揭秘co_await表達式
    8.4.1  表達式轉換過程
    8.4.2  Awaiter對象
    8.4.3  標準庫中的Awaiter
  8.5  揭秘Promise概念
    8.5.1  協程句柄
    8.5.2  Promise概念
  8.6  綜合運用
    8.6.1  生成器
    8.6.2  為已有類型非侵入式擴展協程介面
    8.6.3  利用協程機制簡化錯誤處理
    8.6.4  注意事項
第9章  模塊
  9.1  Hello World模塊
  9.2  定義一個模塊
  9.3  模塊分區
  9.4  私有片段
  9.5  模塊樣板文件
  9.6  注意事項
第10章  綜合運用
  10.1  配置文件反序列化框架
    10.1.1  背景介紹
    10.1.2  標準的缺失,靜態反射機制
    10.1.3  元數據設計
    10.1.4  REPEAT宏
    10.1.5  結構體遍歷
    10.1.6  編譯時多態
    10.1.7  反序列化數據類型
  10.2  AsyncIO協程庫
    10.2.1  背景介紹
    10.2.2  性能測試

    10.2.3  事件驅動模型
    10.2.4  Handle類設計
    10.2.5  調度器設計
    10.2.6  Task協程設計
    10.2.7  實現一些協程
    10.2.8  注意事項
附錄
  附錄A  概念約束歷史
參考文獻

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032