Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Boost Library Documentation - Template Metaprogramming

By Category

Generic Programming

  • Function Types: Boost.FunctionTypes provides functionality to classify, decompose and synthesize function, function pointer, function reference and pointer to member types.
  • Static Assert: Static assertions (compile time assertions).
  • TTI: Type Traits Introspection library.
  • Type Traits: Templates for fundamental properties of types.

Template Metaprogramming

  • CallableTraits: A spiritual successor to Boost.FunctionTypes, Boost.CallableTraits is a header-only C++11 library for the compile-time inspection and manipulation of all 'callable' types. Additional support for C++17 features.
  • Function Types: Boost.FunctionTypes provides functionality to classify, decompose and synthesize function, function pointer, function reference and pointer to member types.
  • Fusion: Library for working with tuples, including various containers, algorithms, etc.
  • Hana: A modern C++ metaprogramming library. It provides high level algorithms to manipulate heterogeneous sequences, allows writing type-level computations with a natural syntax, provides tools to introspect user-defined types and much more.
  • Metaparse: A library for generating compile time parsers parsing embedded DSL code as part of the C++ compilation process
  • Mp11: A C++11 metaprogramming library.
  • MPL: The Boost.MPL library is a general-purpose, high-level C++ template metaprogramming framework of compile-time algorithms, sequences and metafunctions. It provides a conceptual foundation and an extensive set of powerful and coherent tools that make doing explict metaprogramming in C++ as easy and enjoyable as possible within the current language.
  • Proto: Expression template library and compiler construction toolkit for domain-specific embedded languages.
  • Static Assert: Static assertions (compile time assertions).
  • TTI: Type Traits Introspection library.
  • Type Traits: Templates for fundamental properties of types.

Correctness and testing

Data structures

  • Fusion: Library for working with tuples, including various containers, algorithms, etc.