- Libraries Listed Alphabetically
- Libraries Listed by Category
- String and text processing
- Containers
- Iterators
- Algorithms
- Function Objects and higher-order programming
- Generic Programming
- Template Metaprogramming
- Preprocessor Metaprogramming
- Concurrent Programming
- Math and numerics
- Correctness and testing
- Data structures
- Image processing
- Input/Output
- Inter-language support
- Memory
- Parsing
- Programming Interfaces
- Miscellaneous
- Broken compiler workarounds
- Libraries Retired from Boost
See Getting Started page to find out
how to download, build, and install the libraries.
Documentation for some Boost libraries is available as pdfs. This
documentation is available
on Sourceforge.
- accumulators - Framework for incremental
calculation, and collection of statistical accumulators, from Eric Niebler.
- any - Safe, generic container for single
values of different value types, from Kevlin Henney.
- array - STL compliant
container wrapper for arrays of constant size, from
Nicolai Josuttis.
- asio - Portable networking and other low-level
I/O, including sockets, timers, hostname resolution, socket iostreams, serial
ports, file descriptors and Windows HANDLEs, from Chris Kohlhoff.
- assign - Filling containers
with constant or generated data has never been
easier, from Thorsten Ottosen.
- bimap - Bidirectional maps, from Matias Capeletto.
- bind and mem_fn - Generalized binders for function/object/pointers and member functions, from Peter
Dimov.
- call_traits -
Defines types for passing parameters, from John Maddock,
Howard Hinnant, et al.
- circular_buffer - STL compliant
container also known as ring or cyclic buffer, from Jan Gaspar.
- compatibility - Help for
non-conforming standard libraries, from Ralf Grosse-Kunstleve and Jens
Maurer.
- compressed_pair
- Empty member optimization, from John Maddock, Howard
Hinnant, et al.
- concept check
- Tools for generic programming, from Jeremy Siek.
- config - Helps boost
library developers adapt to compiler idiosyncrasies; not
intended for library users.
- conversion - Polymorphic and lexical casts, from Dave Abrahams and
Kevlin Henney.
- crc - Cyclic Redundancy Code, from Daryle
Walker.
- date_time - Date-Time library from Jeff Garland.
- dynamic_bitset - A runtime sized version of std::bitset from Jeremy Siek and Chuck Allison.
- exception - A library for transporting of arbitrary data in exception objects, and transporting of exceptions between threads (N2179), from Emil Dotchevski.
- enable_if - Selective inclusion of function template overloads, from Jaakko Järvi, Jeremiah Willcock, and Andrew Lumsdaine.
- filesystem - Portable paths,
iteration over directories, and other useful filesystem operations, from
Beman Dawes.
- flyweight - Design pattern
to manage large quantities of highly redundant objects,
from Joaquín M López Muñoz.
- foreach - BOOST_FOREACH macro for easily
iterating over the elements of a sequence, from Eric Niebler.
- format - Type-safe 'printf-like' format
operations, from Samuel Krempp.
- function - Function object wrappers
for deferred calls or callbacks, from Doug Gregor.
- function_types - Type traits
for callable, built-in types, from Tobias Schwinger
- functional - Enhanced
function object adaptors, from Mark Rodgers.
- functional/factory -
function object templates for dynamic and static object creation,
from Tobias Schwinger
- functional/forward -
adapters to allow generic function objects to accept arbitrary
arguments, from Tobias Schwinger
- functional/hash -
A TR1 hash function object that can be extended to hash user defined
types, from Daniel James.
- fusion -
Library for working with tuples, including various containers, algorithms, etc.
From Joel de Guzman, Dan Marsden and Tobias Schwinger.
- gil - Generic Image Library, from
Lubomir Bourdev and Hailin Jin.
- graph -
Generic graph components and algorithms, from Jeremy Siek
and a University of Notre Dame team; now maintained by Andrew Sutton and Jeremiah Willcock.
- integer - Headers to ease
dealing with integral types.
- interprocess - Shared memory, memory mapped files,
process-shared mutexes, condition variables, containers and allocators, from Ion Gaztañaga
- interval - Extends the
usual arithmetic functions to mathematical intervals, from Guillaume
Melquiond, Hervé Brönnimann and Sylvain Pion.
- intrusive - Intrusive containers and algorithms, from Ion Gaztañaga
- in_place_factory, typed_in_place_factory- Generic in-place construction of contained objects with a variadic argument-list, from Fernando Cacciola.
- io state savers - Save I/O state to
prevent jumbled data, from Daryle Walker.
- iostreams - Framework for defining streams, stream buffers and i/o filters, from Jonathan Turkanis.
- iterators - Iterator
construction framework, adaptors, concepts, and more, from Dave
Abrahams, Jeremy Siek, and Thomas Witt.
- lambda - Define small unnamed
function objects at the actual call site, and more, from Jaakko Järvi and
Gary Powell.
- lexical_cast - General literal text conversions, such as an
int
represented as
a string
, or vice-versa, from Kevlin Henney.
- math - Several contributions in the
domain of mathematics, from various authors.
- math/complex number algorithms -
These complex number algorithms are the inverses of trigonometric functions currently present in the C++ standard, from John Maddock.
- math/common_factor - Greatest
common divisor and least common multiple, from Daryle Walker.
- math/octonion -
Octonions, from Hubert Holin.
- math/quaternion -
Quaternions, from Hubert Holin.
- math/special_functions -
A wide selection of mathematical special functions from John Maddock, Paul Bristow, Hubert Holin and Xiaogang Zhang.
- math/statistical distributions -
A wide selection of univariate statistical distributions and functions that operate on them from John Maddock and Paul Bristow
- minmax - standard library
extensions for simultaneous min/max and min/max element computations,
from Hervé Brönnimann.
- MPI - Message Passing Interface library, for use in distributed-memory parallel application programming, from Douglas Gregor and Matthias Troyer.
- mpl - Template metaprogramming
framework of compile-time algorithms, sequences and metafunction classes,
from Aleksey Gurtovoy.
- multi_array - Multidimensional
containers and adaptors for arrays of contiguous data, from Ron Garcia.
- multi_index - Containers with
multiple STL-compatible access interfaces, from Joaquín M López
Muñoz.
- numeric/conversion - Optimized Policy-based Numeric Conversions,
from Fernando Cacciola.
- operators - Templates
ease arithmetic classes and iterators, from Dave Abrahams
and Jeremy Siek.
- optional - Discriminated-union
wrapper for optional values, from Fernando Cacciola.
- parameter -
Write functions that accept arguments by name, by David Abrahams
and Daniel Wallin.
- pointer container
- Containers for storing heap-allocated polymorphic objects to ease
OO-programming, from Thorsten Ottosen.
- pool - Memory pool management, from
Steve Cleary.
- preprocessor - Preprocessor
metaprogramming tools including repetition and recursion, from Vesa Karvonen
and Paul Mensonides.
- program_options - Access to configuration
data given on command line, in config files and other sources, from Vladimir Prus.
- property map
- Concepts defining interfaces which map key objects to
value objects, from Jeremy Siek.
- property tree - A tree data
structure especially suited to storing configuration data, from Marcin
Kalicinski and Sebastian Redl.
- proto - Expression template library and compiler
construction toolkit for domain-specific embedded languages, from Eric Niebler.
- python - Reflects C++
classes and functions into Python, from Dave
Abrahams.
- random - A complete
system for random number generation, from Jens Maurer.
- range - Concepts and utilities for
range-based algorithms, as well as range-based algorithms and range
adaptors that allow for efficient and very expressive code, from
Thorsten Ottosen and Neil Groves.
- rational - A rational
number class, from Paul Moore.
- ref - A utility library for
passing references to generic functions, from Jaako Järvi,
Peter Dimov, Doug Gregor, and Dave Abrahams.
- regex - Regular expression
library, from John Maddock.
- result_of - determines the type of a function call expression.
- scope_exit
- Execute arbitrary code at scope exit, from Alexander Nasonov.
- serialization
- Serialization for persistence and marshalling, from Robert Ramey
- signals - managed signals &
slots callback implementation, from Doug Gregor.
- signals2 - managed signals &
slots callback implementation (thread-safe version 2), from Frank Mori Hess.
- smart_ptr - Six smart
pointer class templates, from Greg Colvin, Beman Dawes,
Peter Dimov, and Darin Adler.
- statechart - Arbitrarily
complex finite state machines can be implemented in easily readable and
maintainable C++ code, from Andreas Huber.
- static_assert
- Static assertions (compile time assertions), from John
Maddock.
- spirit - LL parser framework
represents parsers directly as EBNF grammars in inlined C++, from Joel de
Guzman, Hartmut Kaiser, Dan Nuffer and team.
- string_algo -
String algorithms library, from Pavol Droba.
- swap -
Enhanced generic swap function, from Joseph Gauterin.
- system - Operating system support,
including the diagnostics support that will be part of the C++0x standard
library, from Beman Dawes.
- test - Support for simple program testing,
full unit testing, and for program
execution monitoring, from Gennadiy Rozental.
- thread - Portable C++
multi-threading, from William Kempf and Anthony Williams.
- timer - Event timer,
progress timer, and progress display classes, from Beman
Dawes.
- tokenizer - Break of a string or other
character sequence into a series of tokens, from John Bandela.
- TR1 - An implementation of the Technical
Report on C++ Library Extensions, using other Boost libraries as a basis, from John Maddock.
- tribool - 3-state boolean type library, from Doug Gregor.
- tuple - Ease definition of functions returning multiple values, and more,
from Jaakko Järvi.
- type_traits -
Templates for fundamental properties of types, from John
Maddock, Steve Cleary, et al.
- typeof -
Typeof operator emulation, from Arkadiy Vertleyb and Peder Holt.
- uBLAS - Basic linear algebra
for dense, packed and sparse matrices, from Joerg Walter and Mathias Koch.
- units -
Zero-overhead dimensional analysis and unit/quantity
manipulation and conversion, from Matthias Schabel and Steven Watanabe.
- unordered - unordered associative containers, from Daniel James.
- utility - Class noncopyable
plus checked_delete(), checked_array_delete(), next(),
prior()
function templates, plus base-from-member idiom, from Dave Abrahams and others.
- value_initialized - Wrapper for uniform-syntax value initialization,
from Fernando Cacciola, based on the original idea of David Abrahams.
- uuid - A universally unique identifier, from Andy Tompkins.
- variant - Safe, generic, stack-based discriminated union
container, from Eric Friedman and Itay Maman.
- wave - Standards conformant
implementation of the mandated C99/C++ preprocessor functionality packed behind an easy to use iterator interface, from Hartmut Kaiser
- xpressive - Regular expressions that can be written as strings or as expression templates,
and that can refer to each other and themselves recursively with the power of context-free grammars, from Eric Niebler.
Libraries Listed by Category
String and text processing
- conversion/lexical_cast - lexical_cast
class template, from Kevlin Henney.
- format - Type-safe 'printf-like' format
operations, from Samuel Krempp.
- iostreams - Framework for defining streams, stream buffers and i/o filters, from Jonathan Turkanis.
- regex - Regular expression
library, from John Maddock
- spirit - LL parser framework
represents parsers directly as EBNF grammars in inlined C++, from Joel de
Guzman, Hartmut Kaiser, Dan Nuffer and team.
- string_algo -
String algorithms library, from Pavol Droba
- tokenizer - Break of a string or other
character sequence into a series of tokens, from John Bandela
- wave - Standards conformant implementation of the mandated C99/C++ preprocessor functionality packed behind an easy to use iterator interface, from Hartmut Kaiser.
- xpressive - Regular expressions that can be written as strings or as expression templates,
and that can refer to each other and themselves recursively with the power of context-free grammars, from Eric Niebler.
- array - STL compliant
container wrapper for arrays of constant size, from
Nicolai Josuttis.
- bimap - Bidirectional maps, from Matias Capeletto.
- circular_buffer - STL compliant
container also known as ring or cyclic buffer, from Jan Gaspar.
- dynamic_bitset - A runtime sized version of std::bitset from Jeremy Siek and Chuck Allison.
- gil - Generic Image Library, from
Lubomir Bourdev and Hailin Jin.
- graph -
Generic graph components and algorithms, from Jeremy Siek
and a University of Notre Dame team; now maintained by Andrew Sutton and Jeremiah Willcock.
- intrusive - Intrusive containers and algorithms, from Ion Gaztañaga
- multi_array - Multidimensional
containers and adaptors for arrays of contiguous data, from Ron Garcia.
- multi_index - Containers with
multiple STL-compatible access interfaces, from Joaquín M López
Muñoz.
- pointer container
- Containers for storing heap-allocated polymorphic objects to ease OO-programming, from Thorsten Ottosen.
- property map
- Concepts defining interfaces which map key objects to
value objects, from Jeremy Siek.
- property tree - A tree data
structure especially suited to storing configuration data, from Marcin
Kalicinski and Sebastian Redl.
- unordered - unordered associative containers, from Daniel James.
- variant - Safe, generic, stack-based
discriminated union container, from Eric Friedman and Itay Maman.
- gil - Generic Image Library, from
Lubomir Bourdev and Hailin Jin.
- graph -
Generic graph components and algorithms, from Jeremy Siek
and a University of Notre Dame team; now maintained by Andrew Sutton and Jeremiah Willcock.
- iterators - Iterator
construction framework, adaptors, concepts, and more, from Dave
Abrahams, Jeremy Siek, and Thomas Witt.
- operators - Templates
ease arithmetic classes and iterators, from Dave Abrahams
and Jeremy Siek.
- tokenizer - Break of a string or other
character sequence into a series of tokens, from John Bandela.
- foreach - BOOST_FOREACH macro for easily
iterating over the elements of a sequence, from Eric Niebler.
- gil - Generic Image Library, from
Lubomir Bourdev and Hailin Jin.
- graph -
Generic graph components and algorithms, from Jeremy Siek
and a University of Notre Dame team; now maintained by Andrew Sutton and Jeremiah Willcock.
- minmax - standard library
extensions for simultaneous min/max and min/max element computations,
from Hervé Brönnimann.
- range - A new infrastructure
for generic algorithms that builds on top
of the new iterator concepts, from Thorsten Ottosen.
- string_algo -
String algorithms library, from Pavol Droba
- utility - Class next(), prior()
function templates, from Dave Abrahams and others.
- bind and mem_fn - Generalized binders for function/object/pointers and member functions, from Peter Dimov.
- function - Function object wrappers
for deferred calls or callbacks, from Doug Gregor.
- functional - Enhanced
function object adaptors, from Mark Rodgers.
- functional/factory -
function object templates for dynamic and static object creation,
from Tobias Schwinger
- functional/forward -
adapters to allow generic function objects to accept arbitrary
arguments, from Tobias Schwinger
- functional/hash -
A TR1 hash function object that can be extended to hash user defined
types, from Daniel James.
- lambda - Define small unnamed
function objects at the actual call site, and more, from Jaakko Järvi and
Gary Powell.
- ref - A utility library for
passing references to generic functions, from Jaako Järvi,
Peter Dimov, Doug Gregor, and Dave Abrahams.
- signals - managed signals &
slots callback implementation, from Doug Gregor.
- signals2 - managed signals &
slots callback implementation (thread-safe version 2), from Frank Mori Hess.
- result_of - determines the type of a function call expression.
- call_traits -
Defines types for passing parameters, from John Maddock,
Howard Hinnant, et al.
- concept check
- Tools for generic programming, from Jeremy Siek.
- enable_if -
Selective inclusion of function template overloads, from Jaakko
Järvi, Jeremiah Willcock, and Andrew Lumsdaine.
- function_types - Type traits
for callable, built-in types, from Tobias Schwinger
- gil - Generic Image Library, from
Lubomir Bourdev and Hailin Jin.
- in_place_factory, typed_in_place_factory- Generic in-place construction
of contained objects with a variadic argument-list, from Fernando Cacciola.
- operators - Templates
ease arithmetic classes and iterators, from Dave Abrahams
and Jeremy Siek.
- property map
- Concepts defining interfaces which map key objects to
value objects, from Jeremy Siek.
- static_assert
- Static assertions (compile time assertions), from John
Maddock.
- type_traits -
Templates for fundamental properties of types, from John
Maddock, Steve Cleary, et al.
- function_types - Type traits
for callable, built-in types, from Tobias Schwinger
- fusion -
Library for working with tuples, including various containers,
algorithms, etc. From Joel de Guzman, Dan Marsden and Tobias Schwinger.
- mpl - Template metaprogramming
framework of compile-time algorithms, sequences and metafunction classes,
from Aleksey Gurtovoy.
- proto - Expression template library and compiler
construction toolkit for domain-specific embedded languages, from Eric Niebler.
- static_assert
- Static assertions (compile time assertions), from John
Maddock.
- type_traits -
Templates for fundamental properties of types, from John
Maddock, Steve Cleary, et al.
- preprocessor - Preprocessor
metaprogramming tools including repetition and recursion, from Vesa Karvonen
and Paul Mensonides.
- asio - Portable networking and other low-level
I/O, including sockets, timers, hostname resolution, socket iostreams, serial
ports, file descriptors and Windows HANDLEs, from Chris Kohlhoff.
- interprocess - Shared memory, memory mapped files,
process-shared mutexes, condition variables, containers and allocators, from Ion Gaztañaga
- MPI - Message Passing Interface library, for use in distributed-memory parallel application programming, from Douglas Gregor and Matthias Troyer.
- thread - Portable C++
multi-threading, from William Kempf.
Math and numerics
- accumulators - Framework for incremental
calculation, and collection of statistical accumulators, from Eric Niebler.
- integer - Headers to ease
dealing with integral types.
- interval - Extends the
usual arithmetic functions to mathematical intervals, from Guillaume
Melquiond, Hervé Brönnimann and Sylvain Pion.
- math - Several contributions in the
domain of mathematics, from various authors.
- math/complex number algorithms -
These complex number algorithms are the inverses of trigonometric functions currently present in the C++ standard, from John Maddock.
- math/common_factor - Greatest
common divisor and least common multiple, from Daryle Walker.
- math/octonion -
Octonions, from Hubert Holin.
- math/quaternion -
Quaternions, from Hubert Holin.
- math/special_functions -
A wide selection of mathematical special functions from John Maddock, Paul Bristow, Hubert Holin and Xiaogang Zhang.
- math/statistical distributions -
A wide selection of univariate statistical distributions and functions that operate on them from John Maddock and Paul Bristow
- multi_array - Multidimensional
containers and adaptors for arrays of contiguous data, from Ron Garcia.
- numeric/conversion - Optimized Policy-based Numeric Conversions,
from Fernando
- operators - Templates
ease arithmetic classes and iterators, from Dave Abrahams
and Jeremy Siek.
- random - A complete
system for random number generation, from Jens Maurer.
- rational - A rational
number class, from Paul Moore.
- uBLAS - Basic linear algebra
for dense, packed and sparse matrices, from Joerg Walter and Mathias Koch.
- concept check
- Tools for generic programming, from Jeremy Siek.
- static_assert
- Static assertions (compile time assertions), from John
Maddock.
- test - Support for simple program testing,
full unit testing, and for program
execution monitoring, from Gennadiy Rozental.
Data structures
- any - Safe, generic container for single
values of different value types, from Kevlin Henney.
- bimap - Bidirectional maps, from Matias Capeletto.
- compressed_pair
- Empty member optimization, from John Maddock, Howard
Hinnant, et al.
- fusion -
Library for working with tuples, including various containers, algorithms, etc.
From Joel de Guzman and Dan Marsden and Tobias Schwinger.
- multi_index - Containers with
multiple STL-compatible access interfaces, from Joaquín M López
Muñoz.
- pointer container
- Containers for storing heap-allocated polymorphic objects to ease OO-programming, from Thorsten Ottosen.
- property tree - A tree data
structure especially suited to storing configuration data, from Marcin
Kalicinski and Sebastian Redl.
- tuple - Ease definition of functions returning multiple values, and more,
from Jaakko Järvi.
- uuid - A universally unique identifier, from Andy Tompkins.
- variant - Safe, generic, stack-based
discriminated union container, from Eric Friedman and Itay Maman.
- gil - Generic Image Library, from
Lubomir Bourdev and Hailin Jin.
- asio - Portable networking and other low-level
I/O, including sockets, timers, hostname resolution, socket iostreams, serial
ports, file descriptors and Windows HANDLEs, from Chris Kohlhoff.
- assign - Filling containers
with constant or generated data has never been
easier, from Thorsten Ottosen.
- format - Type-safe 'printf-like' format
operations, from Samuel Krempp.
- io state savers - Save I/O state to
prevent jumbled data, from Daryle Walker.
- iostreams - Framework for defining streams, stream buffers and i/o filters, from Jonathan Turkanis.
- program_options - Access to configuration
data given on command line, in config files and other sources, from Vladimir Prus.
- serialization - Serialization
of arbitrary data for persistence and marshalling, from Robert Ramey
- python - Reflects C++
classes and functions into Python, from Dave
Abrahams.
- pool - Memory pool management, from
Steve Cleary.
- smart_ptr - Six smart
pointer class templates, from Greg Colvin, Beman Dawes,
Peter Dimov, and Darin Adler.
- utility - Class noncopyable
plus checked_delete(), checked_array_delete(), next(),
prior()
function templates, plus base-from-member idiom, from Dave Abrahams and others.
- spirit - LL parser framework
represents parsers directly as EBNF grammars in inlined C++, from Joel de
Guzman, Hartmut Kaiser, Dan Nuffer and team.
- function - Function object wrappers
for deferred calls or callbacks, from Doug Gregor.
- parameter -
Write functions that accept arguments by name, by David Abrahams
and Daniel Wallin.
- base-from-member - Idiom to
initialize a base class with a member, from Daryle Walker.
- compressed_pair
- Empty member optimization, from John Maddock, Howard
Hinnant, et al.
- conversion - Polymorphic and lexical casts, from Dave Abrahams and
Kevlin Henney.
- crc - Cyclic Redundancy Code, from Daryle
Walker.
- date_time - Date-Time library from Jeff Garland.
- exception - A library for transporting of arbitrary data in exception objects, and transporting of exceptions between threads (N2179), from Emil Dotchevski.
- filesystem - Portable paths,
iteration over directories, and other useful filesystem operations, from
Beman Dawes.
- flyweight - Design pattern
to manage large quantities of highly redundant objects,
from Joaquín M López Muñoz.
- lexical_cast - General literal text conversions, such as an
int
represented as
a string
, or vice-versa, from Kevlin Henney.
- numeric/conversion - Optimized Policy-based Numeric Conversions,
from Fernando Cacciola.
- optional - Discriminated-union
wrapper for optional values, from Fernando Cacciola.
- program_options - Access to configuration
data given on command line, in config files and other sources, from Vladimir Prus.
- scope_exit
- Execute arbitrary code at scope exit, from Alexander Nasonov.
- statechart - Arbitrarily
complex finite state machines can be implemented in easily readable and
maintainable C++ code, from Andreas Huber.
- swap -
Enhanced generic swap function, from Joseph Gauterin.
- system - Operating
system support, including the diagnostics support that will be part of the
C++0x standard library, from Beman Dawes.
- timer - Event timer,
progress timer, and progress display classes, from Beman
Dawes.
- TR1 - An implementation of the Technical
Report on C++ Library Extensions, using other Boost libraries as a basis, from John Maddock.
- tribool - 3-state boolean type library, from Doug Gregor.
- typeof -
Typeof operator emulation, from Arkadiy Vertleyb and Peder Holt.
- units -
Zero-overhead dimensional analysis and unit/quantity
manipulation and conversion, from Matthias Schabel and Steven Watanabe.
- utility - Class noncopyable
plus checked_delete(), checked_array_delete(), next(),
prior()
function templates, plus base-from-member idiom, from Dave Abrahams and others.
- value_initialized - Wrapper for uniform-syntax value initialization,
from Fernando Cacciola, based on the original idea of David Abrahams.
- compatibility - Help for
non-conforming standard libraries, from Ralf Grosse-Kunstleve and Jens
Maurer.
- config - Helps boost
library developers adapt to compiler idiosyncrasies; not
intended for library users.
[Category suggestions from Aleksey Gurtovoy and Beman Dawes]
Libraries Retired from Boost
- compose - Functional composition adapters for the STL,
from Nicolai Josuttis. Removed in Boost version 1.32.
Please use Bind or Lambda instead.
Revised
03 Nov 2009
© Copyright Beman Dawes 2000-2004
Distributed under the Boost Software License, Version 1.0.
(See file LICENSE_1_0.txt
or www.boost.org/LICENSE_1_0.txt)