Advanced Meta-Programming
Inspired by Bradley Chatha’s talk at DConf 2021.
In session 2 we introduced the concept of meta-programming and explained its cornerstones: CTFE and templates. While CTFE and templates are also found in other languages, such as C++, today we will dive deeper into meta-programming and discover more powerful features that are unique to D.
Meta-programming means that a program is able to treat its own code as data. This means that our code will analyse its data types and change its behaviour accordingly. We will also write code that will then write itself.
Table of contents
- Logging
- Logging
- Logging
- Logging
- Logging
- Logging
- Logging
- Logging
- Logging
- Logging
- Logging
- Logging
- Recap: CTFE
- Recap: CTFE
- Recap: CTFE
- Recap: CTFE
- Recap: CTFE
- Recap: CTFE
- Recap: CTFE
- Recap: CTFE
- Recap: CTFE
- Recap: CTFE
- Recap: CTFE
- Recap: CTFE
- Log Simple Types
- Log Simple Types
- Log Simple Types
- Log Simple Types
- Log Simple Types
- Log Simple Types
- Log Simple Types
- Log Simple Types
- Log Simple Types
- Log Simple Types
- Log Simple Types
- Log Simple Types
- Template Functions
- Template Functions
- Template Functions
- Template Functions
- Template Functions
- Template Functions
- Template Functions
- Template Functions
- Template Functions
- Template Functions
- Template Functions
- Template Functions
- Template Specializations
- Template Specializations
- Template Specializations
- Template Specializations
- Template Specializations
- Template Specializations
- Template Specializations
- Template Specializations
- Template Specializations
- Template Specializations
- Template Specializations
- Template Specializations
- Extended Practice
- Extended Practice
- Extended Practice
- Extended Practice
- Extended Practice
- Extended Practice
- Extended Practice
- Extended Practice
- Extended Practice
- Extended Practice
- Extended Practice
- Extended Practice
- Template Constraints
- Template Constraints
- Template Constraints
- Template Constraints
- Template Constraints
- Template Constraints
- Template Constraints
- Template Constraints
- Template Constraints
- Template Constraints
- Template Constraints
- Template Constraints
- Compile Time Reflection
- Compile Time Reflection
- Compile Time Reflection
- Compile Time Reflection
- Compile Time Reflection
- Compile Time Reflection
- Compile Time Reflection
- Compile Time Reflection
- Compile Time Reflection
- Compile Time Reflection
- Compile Time Reflection
- Compile Time Reflection
- CTFE Returns
- CTFE Returns
- CTFE Returns
- CTFE Returns
- CTFE Returns
- CTFE Returns
- CTFE Returns
- CTFE Returns
- CTFE Returns
- CTFE Returns
- CTFE Returns
- CTFE Returns
- Improvements
- Improvements
- Improvements
- Improvements
- Improvements
- Improvements
- Improvements
- Improvements
- Improvements
- Improvements
- Improvements
- Improvements
- Duck Typing
- Duck Typing
- Duck Typing
- Duck Typing
- Duck Typing
- Duck Typing
- Duck Typing
- Duck Typing
- Duck Typing
- Duck Typing
- Duck Typing
- Duck Typing