Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2017
For the past year or so, I have worked with Herb Sutter on language support for compile-time programming, reflection, metaclasses, and code injection for the C++ programming language. This talk will focus on the related language features of static reflection and projection. These features aim to help programmers work with source code as data, and in some limited ways, use that data to write software.
I plan to trace the evolution of this work from its original proposal to its current implementation in the Clang C++ compiler (two implementations, actually). In particular, I will discuss design criteria, decisions, and issues related to reflection and projection as we implemented and experimented with them. I will also discuss how our current approach is shaped by alternative proposals, community and committee feedback, and restrictions imposed by the C++ programming language itself (i.e., what can you do and what can't you do).
Andrew Sutton: The University of Akron, Assistant Professor
Andrew Sutton is an assistant professor at the University of Akron in Ohio where he teaches and conducts research at the intersection of Software Engineering and Programming Languages. Dr. Sutton helped design and implemented the Concepts Lite proposal for the C++ programming language. He is also the author of the Origin C++ Libraries, an experimental collection of generic libraries that supports ideas and research for generic programming. Dr. Sutton had previously worked as a postdoctoral researcher at Texas A&M University where he worked with Bjarne Stroustrup and Gabriel Dos Reis on the design and implementation of language support for generic programming (i.e., Concepts Lite). He is a member of the C++ Standards Committee and Project Editor for the Concepts Lite Technical Specification. He graduated with a PhD in computer science from Kent State University in Ohio in 2010.
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com