ISBN: 9789865022303
出版日期: 2019-11-26
作者: David Vandevoorde,Nicolai M. Josuttis,DougLas Gregor
譯者: 劉家宏
裝訂: 平裝.單色印刷.824頁.23.
涵蓋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,Nicolai M. Josuttis,DougLas Gregor
作者簡介
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取得計算機科學博士學位。

Zone | Order Total (RM) | Delivery Fee (RM) |
---|---|---|
West Malaysia | Flat Rate | 6.00 |
Zone | Items/Weight | Delivery Fee (RM) |
---|---|---|
East Malaysia | First 1.00 kg | 13.00 |
Extra 1.00 kg | 5.00 | |
Singapore | First 1.00 kg | 25.00 |
Extra 1.00 kg | 5.00 | |
Australia, New Zealand | First 1.00 kg | 159.77 |
Extra 0.50 kg | 52.65 | |
Austria, Denmark, Finland, Ireland, Switzerland, Russia | First 1.00 kg | 157.78 |
Extra 0.50 kg | 34.31 | |
Brunei, Cambodia, Laos, Mongolia | First 1.00 kg | 175.10 |
Extra 0.50 kg | 87.14 | |
Belgium,France, Germany, Netherlands, Spain, U.K | First 1.00 kg | 150.94 |
Extra 0.50 kg | 30.46 | |
China | First 1.00 kg | 96.44 |
Extra 0.50 kg | 25.35 | |
Bangladesh, Brazil, Iraq, Pakistan, Qatar, S.Arabia, UAE, Sri Lanka | First 1.00 kg | 118.52 |
Extra 0.50 kg | 24.96 | |
South Africa | First 1.00 kg | 118.52 |
Extra 0.50 kg | 24.96 | |
Philippines | First 1.00 kg | 91.42 |
Extra 0.50 kg | 15.29 | |
Canada, United States, Mexico | First 1.00 kg | 162.58 |
Extra 0.50 kg | 35.90 | |
Hong Kong | First 1.00 kg | 80.63 |
Extra 0.50 kg | 29.06 | |
India | First 1.00 kg | 113.30 |
Extra 0.50 kg | 22.28 | |
Indonesia | First 1.00 kg | 107.35 |
Extra 0.50 kg | 24.87 | |
Japan | First 1.00 kg | 112.97 |
Extra 0.50 kg | 35.03 | |
Macau | First 1.00 kg | 92.93 |
Extra 0.50 kg | 13.82 | |
Singapore | First 1.00 kg | 74.75 |
Extra 0.50 kg | 21.49 | |
Taiwan | First 1.00 kg | 94.42 |
Extra 0.50 kg | 34.76 | |
Thailand | First 1.00 kg | 94.10 |
Extra 0.50 kg | 28.25 | |
Vietnam | First 1.00 kg | 98.94 |
Extra 0.50 kg | 14.34 |