Eric Niebler: A First Look at Proto-0x
Channel: CppNow
Date: 2013-06-10

Boost.Proto is a library for building Embedded Domain-Specific Languages in C++. Several expression template-based libraries in Boost are built with the help of Proto including Spirit, Phoenix, Xpressive, and MSM, along with the proposed Boost.SIMD. EDSLs defined with Proto are expressed at a high level in terms of grammars and semantic actions, freeing the author from fiddly template metaprogramming chores.

The currently available version of Boost.Proto pushes the limits of the C++03 language and suffers from the constraints imposed by that language. The subject of this talk is the new, upcoming version of Proto, rethought and redesigned from the ground up for C++11 to make EDSL design easier and safer than ever.

This talk will cover the basics of defining a small EDSL with Proto-0x. I will point out where the new Proto differs from the old, but no prior knowledge of Proto will be assumed. I will also show how the new core features of C++11 have influenced the design of Proto for the better and fundamentally changed how I approach library design in general.
---

*--*

---