Herb Sutter‘s plenary is entitled, Meta: Thoughts on generative C++. As he tells us:
Two years ago, I started to focus on exploring ways that we might evolve the C++ language itself to make C++ programming both more powerful and simpler. The only way to accomplish both of those goals at the same time is by adding abstractions that let programmers directly express their intent—to elevate comments and documentation to testable code, and elevate coding patterns and idioms into compiler-checkable declarations. The work came up with several potential candidate features where judiciously adding some power to the language could simplify code dramatically, while staying true to C++’s core values of efficient abstraction, closeness to hardware, and the zero-overhead principle.
The first two potential candidate features from that work to be further developed and proposed for ISO C++ are the <=> unified comparison operator (minor) and what I’ve provisionally called “metaclasses” as a way to generatively write C++ types (major). This talk is about the latter, and includes design motivation, current progress, and some live online compiler demos using the prototype Clang-based compiler built by Andrew Sutton and hosted at godbolt.org.
This presentation is an expansion of the Thoughts on Metaclasses session, presented at ACCU this past April. Due to the overwhelming positive response the presentation generated, Herb will expand the scope and focus on the implications of Metaclasses that it will bring to future progress of the C++ language. The concept is a groundbreaking change in C++ development and is a session not to be missed.