Änderungen vorbehalten / changes reserved
Doing more work at compile-time means doing less work at run-time. Less work at run-time leads to faster executables. There are limits, however. Unfortunately, we cannot usually move the entire project to compile-time, as most useful programs rely on some user-provided input. In this class, you learn how to identify code that can be moved to compile-time, the limits of compile-time programming, and how to bridge the compile-time and run-time world.
Compile-time programming is more than templates and more than constexpr. With modern techniques, it is the intersection of these features.
If performance is your concern, and it probably is if you program in C++, you want to do as little work at run-time as possible. Come learn the techniques that make that possible.
Please note: This outline is subject to change.
Preparing for constexpr
I expect you are actively programming in C++ today and are familiar with template syntax and how templates are used.
My classes are highly interactive. Come expecting to interact with your fellow students and me.