BoostCon 2012

Generic Programming

Generic Programming Training Course

An intensive hands-on course exploring the design, use, and methodology of high-performance reusable software libraries in C++.

  • maximize software generality while also maximizing performance
  • more powerfully use generic libraries such as the STL and many of the Boost libraries.
  • gain first-hand experience writing template software
  • be prepared for some of the most important language features in the upcoming 2nd C++ international standard.

Prerequisites

One year minimum C++ experience. Some experience using and writing templates. This is a challenging course, most appropriate for intermediate and advanced C++ programmers.

Format

Five days of lectures and hands-on exercises.

Topics

  • Origins and Structure of the STL
  • Algorithm Oriented Design
  • “Lifting” and the Generic Programming Process
  • The Role of Abstraction in Correctness and Efficiency
  • Concepts, Models, and Concept Refinement
  • Complexity Analysis
  • Associated Types
  • Template Errors, Concept Checking, and Concept Archetypes
  • Algorithm Refinement (or Specialization)
  • The Role of Views and Adaptors in Algorithm Reuse
  • Creating Iterators
  • Iterator Adaptors
  • External Adaptation and Retroactive Concept Mapping
  • Implementation Selection Using Tag Dispatching
  • Implementation Selection Using SFINAE
  • Library Customization Points Using Argument Dependent Lookup
  • Library Customization Points Using Traits
  • Case Study of the Boost Graph Library
  • Sparse Matrices as Graphs with Matlab-BGL
  • Static and Dynamic Polymorphism
  • Type Erasure
  • Upcoming C++ Features Supporting Generic Programming


Note

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

News

  • The Future of C++

    Dave Abrahams has been thinking about what’s next for the C++ language in a series of articles at the C++Next blog.

    More...

  • Programmer’s Grimoire Interview: now in English

    Thanks to Takatoshi Kondo and colleagues, non-Japanese readers can now view this excerpt from Volume 2, “The Evolution of Languages” - Programmer’s Grimoire Interview with Dave Abrahams  

    More...

  • The latest issue of Programmer’s Grimoire features an interview with Dave Abrahams

    Vol.2 of the Japanese-language journal Programmer’s Grimoire, is subtitled “The Evolution of Languages.” If you don’t read Japanese, fear not, an English translation is coming soon.

    More...