How bad is Meta-Programming still today?
When innovation-hungry programmers discovered by accident that C++ allows us to calculate and transform programs at compile time, an humongous hype was triggered: gigantic research projects were launched to develop self-optimizing software. Unfortunately, such software also had gigantic compile times of up to several days on parallel machines. And the syntax of template meta-programming can drive the toughest geeks into insanity. Despite this disillusion, the compiler support improved over the years and constexpr brought us a much simpler syntax.
In this light we like to ask the questions: What can, should, and must we compute at compile time? Which new opportunities offer constexpr and their extension in C++14? What have to be done in the classical manner still? We will discover the different techniques of meta-programming with examples of simple examples, type information, expression templates and meta-tuning. Without becoming unbearably theoretical, we will show the equivalence of constexpr in C++11 and C++14 and their Turing completeness.
Speaker: Peter Gottschling