C++Now! 2012

C++ Metaprogramming

An intensive hands-on course exploring the concepts, tools, and techniques of metaprogramming in C++ with the field’s leading practitioners.

  • learn what metaprogramming is and why it is used.
  • build expressive, declarative library interfaces that generate arbitrarily sophisticated executable code such as parsers and matrix multipliers.
  • gain first-hand experience with compile-time computation
  • learn about Boost libraries that make metaprogramming expressive, fun, and (yes!) easy.

Prerequisites

At least two years C++ experience. Familiarity with the STL and relative comfort writing and using templates. This is a challenging course, most appropriate for advanced C++ programmers.

Format

Five days of lecures and hands-on exercises.

Book

C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond by our principal instructor, Dave Abrahams, and Aleksey Gurtovoy.

Topics

  • What is Metaprogramming
  • How Template Metaprogramming Works
  • The Mechanics of Template Instantiation
  • Traits and Type Manipulation
  • Metafunctions
  • Polymorphism and Non-Type Data
  • Type sequences
  • The Boost Metaprogramming Library
  • Compile-Time Iterators
  • Compile-Time Algorithms
  • Domain-Specific Embedded Languages
  • Code Generation with Templates
  • Techniques for Meshing Compile-Time and Runtime Computation
  • Tuple Metaprogramming with Boost.Fusion
  • Preprocessor Metaprogramming with Boost.Preprocessor
  • Expression Templates
  • The Boost.Proto Expression Template Meta-library
  • Understanding Template Errors
  • Intentionally Generating Compile-Time Errors
  • Compile-Time Performance
  • Using Overload Resolution To Improve Metaprogram Speed


Note

Details and duration of this course can be adjusted to accomodate your schedule, interests, and specific development challenges.

News

  • BoostCon / C++Next!: Register Now and Save $100

    Less than three days remain before the early registration deadline The amazing 6th Boost conference, now with additional track containing 15 hours of C++11 tutorials, is still $599 for a short time only.

    More...

  • C++ Next!: the future of C++, brought to you by BoostCon

    Join the entire BoostPro team in Aspen May 12 – 18th. With the addition of a third track and the expansion of an already stellar program, BoostCon 2012 has come into its own this year. The early-bird registration deadline is April 15th, so sign up now.

    More...

  • Dave to speak at PossConn 2012

    Dave Abrahams will give two talks at this year’s Palmetto Open Source Software Conference in Columbia, SC on March 28th & 29th. More information at www.posscon.org.

    More...