C++ Advanced · Lesson 04 of 8
Template metaprogramming
constexpr, CRTP, tag dispatch, compile-time unit checks.
Estimated time · 7h
Guided lesson
Work through these steps
- 1.
Read the template metaprogramming example and identify what each line owns or changes.
- 2.
Create a small source file, compile with warnings enabled, and run it from the terminal.
- 3.
Change one input, predict the result before running, then compare the output.
- 4.
Record one compiler or runtime error and explain the correction in your own words.
Example
Try it yourself
template <typename Unit> struct Quantity { double value; };
struct Radians {};
using Angle = Quantity<Radians>;Practical exercise
Apply the lesson
Build a small robotics-flavoured program that demonstrates template metaprogramming. Keep the first version simple, compile with -Wall -Wextra, and test one normal and one edge case.
Before you continue
- The program builds without warnings
- You can explain the key rule without reading the example
- The normal and edge cases both have recorded results