Template Metaprogramming with C++: Learn everything about C++ templates and unlock the power of template metaprogramming (Paperback)

Bancila, Marius

  • 出版商: Packt Publishing
  • 出版日期: 2022-08-19
  • 售價: $1,770
  • 貴賓價: 9.5$1,682
  • 語言: 英文
  • 頁數: 480
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 1803243457
  • ISBN-13: 9781803243450
  • 相關分類: C++ 程式語言
  • 立即出貨 (庫存=1)

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

商品描述

Understand how to use modern C++ templates for writing maintainable, robust, and fast software

Key Features

- Grasp the fundamentals of and learn to write effective C++ templates
- Get up to speed with the latest C++20 template features such as constraints and concepts
- Explore different patterns and idioms to integrate templates in your program design

Book Description

Learn how the metaprogramming technique enables you to create data structures and functions that allow computation to happen at compile time. With this book, you'll realize how templates help you avoid writing duplicate code and are key to creating generic libraries, such as the standard library or Boost, that can be used in a multitude of programs.

The introductory chapters of this book will give you insights into the fundamentals of templates and metaprogramming. You'll then move on to practice writing complex templates and exploring advanced concepts such as template recursion, template argument deduction, forwarding references, type traits, and conditional compilation. Along the way, you'll learn how to write variadic templates and how to provide requirements to the template arguments with C++20 constraints and concepts. Finally, you'll apply your knowledge of C++ metaprogramming templates to implement various metaprogramming patterns and techniques.

By the end of this book, you'll have learned how to write effective templates and implement metaprogramming in your everyday programming journey.

What you will learn

- Understand the syntax for all types of templates
- Discover how specialization and instantiation works
- Get to grips with template argument deduction and forwarding references
- Write variadic templates with ease
- Become familiar with type traits and conditional compilation
- Restrict template arguments in C++20 with constraints and concepts
- Implement patterns such as CRTP, mixins, and tag dispatching

Who this book is for

This book is for beginner-to-intermediate C++ developers who want to learn about template metaprogramming as well as advanced C++ developers looking to get up to speed with the new C++20 features related to templates and the the various idioms and patterns. Basic C++ coding experience is necessary to get started with this book.

商品描述(中文翻譯)

了解如何使用現代C++模板來撰寫易於維護、穩健且高效的軟體

主要特點:

- 掌握基本概念並學習撰寫有效的C++模板
- 熟悉最新的C++20模板功能,如約束和概念
- 探索不同的模式和習慣,將模板整合到程式設計中

書籍描述:

學習如何使用元程式設計技術創建在編譯時執行計算的資料結構和函式。通過本書,您將了解模板如何幫助您避免撰寫重複的程式碼,並成為創建通用程式庫(如標準程式庫或Boost)的關鍵,這些程式庫可以在多個程式中使用。

本書的入門章節將讓您深入了解模板和元程式設計的基礎知識。然後,您將練習撰寫複雜的模板並探索高級概念,如模板遞迴、模板引數推斷、轉發引用、型別特性和條件編譯。在此過程中,您將學習如何撰寫可變引數模板,以及如何使用C++20的約束和概念為模板引數提供要求。最後,您將應用您對C++元程式設計模板的知識來實現各種元程式設計模式和技術。

通過閱讀本書,您將學會如何撰寫有效的模板並在日常程式設計中實現元程式設計。

您將學到什麼:

- 瞭解各種模板的語法
- 了解特化和實例化的運作方式
- 掌握模板引數推斷和轉發引用
- 輕鬆撰寫可變引數模板
- 熟悉型別特性和條件編譯
- 使用C++20的約束和概念限制模板引數
- 實現CRTP、mixin和標籤分派等模式

本書適合對C++模板元程式設計有興趣的初學者到中級C++開發人員,以及希望熟悉與模板相關的新C++20功能、習慣和模式的高級C++開發人員。需要具備基本的C++編碼經驗才能開始閱讀本書。

目錄大綱

1. Introduction to Templates
2. Template Fundamentals
3. Variadic Templates
4. Advanced Template Concepts
5. Type Traits and Conditional Compilation
6. Concepts and Constraints
7. Patterns and Idioms
8. Ranges and Algorithms
9. The Ranges Library
10. Appendix

目錄大綱(中文翻譯)

1. 模板介紹
2. 模板基礎知識
3. 可變參數模板
4. 高級模板概念
5. 類型特性和條件編譯
6. 概念和約束
7. 模式和慣用語法
8. 範圍和演算法
9. 範圍庫
10. 附錄