C++ Templates 全覽, 2/e (C++ Templates: The Complete Guide, 2/e)

David Vandevoorde, Nicolai M. Josuttis, DougLas Gr... 劉家宏 譯

  • C++ Templates 全覽, 2/e (C++ Templates: The Complete Guide, 2/e)-preview-1
  • C++ Templates 全覽, 2/e (C++ Templates: The Complete Guide, 2/e)-preview-2
  • C++ Templates 全覽, 2/e (C++ Templates: The Complete Guide, 2/e)-preview-3
  • C++ Templates 全覽, 2/e (C++ Templates: The Complete Guide, 2/e)-preview-4
  • C++ Templates 全覽, 2/e (C++ Templates: The Complete Guide, 2/e)-preview-5
  • C++ Templates 全覽, 2/e (C++ Templates: The Complete Guide, 2/e)-preview-6
  • C++ Templates 全覽, 2/e (C++ Templates: The Complete Guide, 2/e)-preview-7
  • C++ Templates 全覽, 2/e (C++ Templates: The Complete Guide, 2/e)-preview-8
  • C++ Templates 全覽, 2/e (C++ Templates: The Complete Guide, 2/e)-preview-9
C++ Templates 全覽, 2/e (C++ Templates: The Complete Guide, 2/e)-preview-1

買這商品的人也買了...

商品描述

涵蓋C++11,C++14與C++17標準

Templates(模板)是C++裡威力最強大的功能之一。然而,即便在C++語言及開發社群持續發展的當下,卻仍常被誤解且乏人問津。在本書C++ Templates, Second Edition中。三位精通C++的先驅者為我們示範何時、為何以及如何使用新穎的templates功能以構築簡潔、快速、高效且易於維護的軟體。

最新版本為C++11、C++14、及C++17標準做了全面的更新,展示能應用於各式場景的尖端技術。針對強化了templates或與之產生化學反應的新式語言特性,作者們皆提供了最權威的解釋,包含:variadic templates(可變參數模板)、泛型lambda表示式(generic lambdas)、class template引數推導、編譯期if(compile-time if)、forwarding references(轉發參考)、以及使用者定義文字(user-defined literals)。他們同時深入探究基本概念(像是value categories),涵蓋了所有的standard type traits。

本書以一則深具見地的教程開場,帶出基本概念和相關的語言特性。餘下的部分提供了詳盡的參考資料,從語言細節、編程技術、進階應用場景、乃至於精煉的慣用手法(idiom)。通篇範例清楚地闡明抽象概念,同時展示活用C++ templates的最佳實踐。

‧精確理解templates的行為,以避免常見的陷阱
‧在不對效率妥協的情況下,復用既有程式碼
‧利用templates寫出更加有效率、彈性且易於維護的程式
‧善用C++標準庫工具以撰寫泛型程式
‧掌握現今最高效的慣用手法及技術
‧體驗即將推出的Concept(概念)特性

英文版支援網站tmplbook.com提供本書源碼及相關更新
 

作者簡介

David Vandevoorde 是Edison Design Group公司的工程副總裁,負責規劃該公司C++編譯器的關鍵特性。同時也是聲譽卓著的comp.lang.c++.moderated論壇共同創辦人,並活躍於C++標準化工作。他於Rensselaer Polytechnic Institute取得了計算機科學博士及碩士學位,並於Brussels Free University取得工程碩士。於技術方面的興趣包含演算法開發及教學。

Nicolai M. Josuttis 是一位獨立系統架構師、技術經理、顧問和技術教練,致力於C++標準化工作二十餘年。參與Library Working Group期間,他尤其關注一般應用程式開發者的偏好。憑藉《C++標準庫學習教本與參考工具 第二版》(Addison-Wesley)及其他著作,他在C++社群裡以演講和著述享有盛名。

Douglas Gregor 是一位擁有C++程式庫設計背景的資深編譯器開發者。作為一位Boost程式庫早期貢獻者,他開發了數個現今已納入C++標準的程式庫。其後,他領導開源Clang C++編譯器實作專案,負責完成了C++11標準的支援,並致力於C++11標準化工作。他於Rensselaer Polytechnic Institute取得計算機科學博士學位。

目錄大綱

    
目錄
前言
第二版致謝
初版致謝
譯者序
關於本書

【第一篇 基本認識】

  第 01 章 函式模板
  第 02 章 類別模板
  第 03 章 非型別模板參數
  第 04 章 可變參數模板
  第 05 章 刁鑽的基本技術
  第 06 章 搬移語義和 enable_if<>
  第 07 章 傳值或傳參考?
  第 08 章 編譯期程式設計
  第 09 章 實際運用 Templates
  第 10 章 Template 基本術語
  第 11 章 泛型程式庫

【第二篇 深入模板】

  第 12 章 基本觀念再深入
  第 13 章 Templates 內的名稱
  第 14 章 實體化
  第 15 章 Template 引數推導
  第 16 章 特化與重載
  第 17 章 未來發展方向

【第三篇 模板與設計】

  第 18 章 Templates 的多型威力
  第 19 章 實作 Traits
  第 20 章 依型別性質重載
  第 21 章 Templates 與繼承
  第 22 章 橋接靜態與動態多型
  第 23 章 後設編程
  第 24 章 型別列表
  第 25 章 Tuples
  第 26 章 可辨聯集
  第 27 章 Expression Templates
  第 28 章 Templates 除錯

【附錄】 

  A 單一定義規則
  B 數值類型
  C 重載決議機制
  D 標準型別工具
  E 概念

參考書目
辭彙 / 術語表
索引