Photo of Odin Holmes

Odin Holmes

Odin was allocated from a pool of hippies in the middle of the forest. He spent most of his career designing electronic circuits and programming micro controllers in assembler. One day after having shot himself in the foot particularly badly a friend introduced him to C++, a seriously powerful and ongoing addiction followed. Odin has authored many proof of concept libraries in the embedded field and is trying to revolutionize this domain. Odin co-authored the kvasir::mpl library, co-founded the embo.io conference and was a heavy contributor to the brigand library. In his day job, he teaches people how to shoot themselves in the foot less and get more from their compiler, both with his in-house team as well as in a training and consulting role.

boost.tmp: Your DSL for /*Metaprogramming*/ all the things

Monday 10:45
90 minute presentation
Advanced
Intermediate

Over my career I have given a few metaprogramming talks, however, I think this discipline has reached a point where one can start teaching it from a higher level of abstraction.

Many have questioned my motivations in different compile-time optimization techniques: "no one writes code that needs that" to which I answer "yet". In this talk, I will discuss my current library project, boost.tmp (not yet submitted to boost). This library not only offers a relatively feature complete DSL with which one can meet the vast majority of metaprogramming needs with no disambiguators or odd keywords, but can also potentially provide the basis for adding seamless integration of functional programming concepts to C++.

We will cover such topics as rust enum like variants (and match), chaining, composing and lifting functions to async calls, monadic interfaces to optional, named parameters, parameter "production guidelines", state machines etc.