توضیحاتی در مورد کتاب Template Metaprogramming with C++
نام کتاب : Template Metaprogramming with C++
ویرایش : 1
عنوان ترجمه شده به فارسی : فرابرنامه نویسی قالب با C
سری :
نویسندگان : Marius Bancila
ناشر : Packt Publishing
سال نشر : 2022
تعداد صفحات : 0
ISBN (شابک) : 9781803243450
زبان کتاب : English
فرمت کتاب : epub درصورت درخواست کاربر به PDF تبدیل می شود
حجم کتاب : 10 مگابایت
بعد از تکمیل فرایند پرداخت لینک دانلود کتاب ارائه خواهد شد. درصورت ثبت نام و ورود به حساب کاربری خود قادر خواهید بود لیست کتاب های خریداری شده را مشاهده فرمایید.
فهرست مطالب :
Template Metaprogramming with C++
Contributors
About the author
About the reviewer
Preface
Who this book is for?
What this book covers
To get the most out of this book
Mentions and further readings
Download the example code files
Download the color images
Conventions used
Get in touch
Share Your Thoughts
Part 1: Core Template Concepts
Chapter 1: An Introduction to Templates
Understanding the need for templates
Writing your first templates
Understanding template terminology
A brief history of templates
The pros and cons of templates
Summary
Questions
Further reading
Chapter 2: Template Fundamentals
Defining function templates
Defining class templates
Defining member function templates
Understanding template parameters
Type template parameters
Non-type template parameters
Template template parameters
Default template arguments
Understanding template instantiation
Implicit instantiation
Explicit instantiation
Understanding template specialization
Explicit specialization
Partial specialization
Defining variable templates
Defining alias templates
Exploring generic lambdas and lambda templates
Summary
Questions
Further reading
Chapter 3: Variadic Templates
Understanding the need for variadic templates
Variadic function templates
Parameter packs
Understanding parameter packs expansion
Variadic class templates
Fold expressions
Variadic alias templates
Variadic variable templates
Summary
Questions
Further reading
Part 2: Advanced Template Features
Chapter 4: Advanced Template Concepts
Understanding name binding and dependent names
Two-phase name lookup
Dependent type names
Dependent template names
Current instantiation
Exploring template recursion
Function template argument deduction
Class template argument deduction
Forwarding references
The decltype specifier
The std::declval type operator
Understanding friendship in templates
Summary
Questions
Further readings
Chapter 5: Type Traits and Conditional Compilation
Understanding and defining type traits
Exploring SFINAE and its purpose
Enabling SFINAE with the enable_if type trait
Using constexpr if
Exploring the standard type traits
Querying the type category
Querying type properties
Querying supported operations
Querying type relationships
Modifying cv-specifiers, references, pointers, or a sign
Miscellaneous transformations
Seeing real-world examples of using type traits
Implementing a copy algorithm
Building a homogenous variadic function template
Summary
Questions
Further reading
Chapter 6: Concepts and Constraints
Understanding the need for concepts
Defining concepts
Exploring requires expressions
Simple requirements
Type requirements
Compound requirements
Nested requirements
Composing constraints
Learning about the ordering of templates with constraints
Constraining non-template member functions
Constraining class templates
Constraining variable templates and template aliases
Learning more ways to specify constraints
Using concepts to constrain auto parameters
Exploring the standard concepts library
Summary
Questions
Further reading
Part 3: Applied Templates
Chapter 7: Patterns and Idioms
Dynamic versus static polymorphism
The Curiously Recurring Template Pattern
Limiting the object count with CRTP
Adding functionality with CRTP
Implementing the composite design pattern
The CRTP in the standard library
Mixins
Type erasure
Tag dispatching
Alternatives to tag dispatching
Expression templates
Using ranges as an alternative to expression templates
Typelists
Using typelists
Implementing operations on typelists
Summary
Questions
Further reading
Chapter 8: Ranges and Algorithms
Understanding the design of containers, iterators, and algorithms
Creating a custom container and iterator
Implementing a circular buffer container
Implementing an iterator type for the circular buffer container
Writing a custom general-purpose algorithm
Summary
Questions
Chapter 9: The Ranges Library
Advancing from abstract ranges to the ranges library
Understanding range concepts and views
Exploring more examples
Understanding the constrained algorithms
Writing your own range adaptor
Summary
Questions
Further reading
Appendix
Closing Notes
Assignment Answers
Chapter 1, Introduction to Templates
Chapter 2, Template Fundamentals
Chapter 3, Variadic Templates
Chapter 4, Advanced Template Concepts
Chapter 5, Type Traits and Conditional Compilation
Chapter 6, Concepts and Constraints
Chapter 7, Patterns and Idioms
Chapter 8, Ranges and Algorithms
Chapter 9, The Ranges Library
Why subscribe?
Other Books You May Enjoy
Packt is searching for authors like you
Share Your Thoughts