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

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Boost 1.83.0 Library Documentation - Template Metaprogramming

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.

Author(s)
Barrett Adair
First Release
1.66.0
C++ Standard Minimum Level
11
Categories
Template Metaprogramming
Describe

A C++14 reflection library.

Author(s)
Peter Dimov
First Release
1.77.0
Categories
Language Features Emulation, Template Metaprogramming
Function Types

Boost.FunctionTypes provides functionality to classify, decompose and synthesize function, function pointer, function reference and pointer to member types.

Author(s)
Tobias Schwinger
First Release
1.35.0
C++ Standard Minimum Level
03
Categories
Generic Programming, Template Metaprogramming
Fusion

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

Author(s)
Joel de Guzman, Dan Marsden and Tobias Schwinger
First Release
1.35.0
C++ Standard Minimum Level
03
Categories
Data structures, Template Metaprogramming
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.

Author(s)
Louis Dionne
First Release
1.61.0
C++ Standard Minimum Level
14
Categories
Template Metaprogramming
HOF

Higher-order functions for C++

Author(s)
Paul Fultz II
First Release
1.67.0
C++ Standard Minimum Level
11
Categories
Function objects and higher-order programming, Template Metaprogramming
Metaparse

A library for generating compile time parsers parsing embedded DSL code as part of the C++ compilation process

Author(s)
Abel Sinkovics
First Release
1.61.0
C++ Standard Minimum Level
03
Categories
Template Metaprogramming
Mp11

A C++11 metaprogramming library.

Author(s)
Peter Dimov
First Release
1.66.0
C++ Standard Minimum Level
11
Categories
Template Metaprogramming
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.

Author(s)
Aleksey Gurtovoy
First Release
1.30.0
C++ Standard Minimum Level
03
Categories
Template Metaprogramming
PFR

Basic reflection for user defined types.

Author(s)
Antony Polukhin
First Release
1.75.0
C++ Standard Minimum Level
14
Categories
Data structures, Template Metaprogramming
Proto

Expression template library and compiler construction toolkit for domain-specific embedded languages.

Author(s)
Eric Niebler
First Release
1.37.0
Categories
Template Metaprogramming
Static Assert

Static assertions (compile time assertions).

Author(s)
John Maddock
First Release
1.19.0
C++ Standard Minimum Level
03
Categories
Correctness and testing, Generic Programming, Template Metaprogramming
TTI

Type Traits Introspection library.

Author(s)
Edward Diener
First Release
1.54.0
C++ Standard Minimum Level
03
Categories
Generic Programming, Template Metaprogramming
Type Traits

Templates for fundamental properties of types.

Author(s)
John Maddock, Steve Cleary, et al
First Release
1.13.0
C++ Standard Minimum Level
03
Categories
Generic Programming, Template Metaprogramming
YAP

An expression template library for C++14 and later.

Author(s)
T. Zachary Laine
First Release
1.68.0
C++ Standard Minimum Level
14
Categories
Generic Programming, Template Metaprogramming