| Libraries

Getting Started Tools Web Site News Community FAQ More Info

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 in other forms, including DocBook, XSL Formatting Objects, and Unix man pages. This documentation is available on Sourceforge.

## Libraries Listed Alphabetically

- 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, including sockets, timers, hostname resolution and socket iostreams, 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.
- 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.
- 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/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.
- 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.
- 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.
- python - Reflects C++ classes and functions into Python, from Dave Abrahams.
- random - A complete system for random number generation, from Jens Maurer.
- range - A new infrastructure for generic algorithms that builds on top of the new iterator concepts, from Thorsten Ottosen.
- 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.
- serialization - Serialization for persistence and marshalling, from Robert Ramey
- signals - managed signals & slots callback implementation, from Doug Gregor.
- smart_ptr - Five 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.
- 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.
- 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.
- 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.
- 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.

### Containers

- 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.
- 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.
- variant - Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman.

### Iterators

- 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.
- 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.

### Algorithms

- 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.
- 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.

### Function objects and higher-order programming

- 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/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.
- result_of - determines the type of a function call expression.

### Generic Programming

- 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.

### Template Metaprogramming

- function_types - Type traits for callable, built-in types, from Tobias Schwinger
- fusion - Library for working with tuples, including various containers, algorithms, etc.
- mpl - Template metaprogramming framework of compile-time algorithms, sequences and metafunction classes, from Aleksey Gurtovoy.
- 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.
From Joel de Guzman, Dan Marsden and Tobias Schwinger.

### Preprocessor Metaprogramming

- preprocessor - Preprocessor metaprogramming tools including repetition and recursion, from Vesa Karvonen and Paul Mensonides.

### Concurrent Programming

- asio - Portable networking, including sockets, timers, hostname resolution and socket iostreams, 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

- 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.

### Correctness and testing

- 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.
- tuple - Ease definition of functions returning multiple values, and more, from Jaakko Järvi.
- variant - Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman.

### Image processing

- gil - Generic Image Library, from Lubomir Bourdev and Hailin Jin.

### Input/Output

- asio - Portable networking, including sockets, timers, hostname resolution and socket iostreams, 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

### Inter-language support

- python - Reflects C++ classes and functions into Python, from Dave Abrahams.

### Memory

- pool - Memory pool management, from Steve Cleary.
- smart_ptr - Five 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.

### Parsing

- spirit - LL parser framework represents parsers directly as EBNF grammars in inlined C++, from Joel de Guzman, Hartmut Kaiser, Dan Nuffer and team.

### Programming Interfaces

- 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.

### Miscellaneous

- 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.
- filesystem - Portable paths, iteration over directories, and other useful filesystem operations, from Beman Dawes.
- 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.
- statechart - Arbitrarily complex finite state machines can be implemented in easily readable and maintainable C++ code, from Andreas Huber.
- 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.
- 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.

### Broken compiler workarounds

- 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 19 Mar 2008

© 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)