| Home | Libraries | People | FAQ | More

# Boost Libraries

- array - STL compliant container wrapper for arrays of constant size from Nicolai Josuttis.
- call_traits - Defines types for passing parameters from John Maddock, Howard Hinnant, et al.
- compose - Functional composition adapters for the STL from Nicolai Josuttis.
- 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 - Numeric, polymorphic, and lexical casts from Dave Abrahams and Kevlin Henney.
- dir_it - A set of file system directory level iterators from Dietmar Kühl.
- functional - Enhanced function object adaptors from Mark Rodgers.
- graph - Generic graph components and algorithms from Jeremy Siek and a University of Notre Dame team.
- integer - Headers to ease dealing with integral types.
- 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.
- python - reflects C++ classes and functions into Python, from Dave Abrahams.
- random - A complete system for random number generation from Jens Maurer.
- rational - A rational number class from Paul Moore.
- regex - Regular expression library from John Maddock.
- smart_ptr - Four smart pointer classes from Greg Colvin and Beman Dawes.
- static_assert - static assertions (compile time assertions) from John Maddock.
- timer - Event timer, progress timer, and progress display classes from Beman Dawes.
- type_traits - Templates for fundamental properties of types from John Maddock, Steve Cleary, et al.
- utility - Class noncopyable plus next(), prior(), and tie() function templates from Dave Abrahams and others.

See Compiler Status to find out what library works with which compiler.

See Header Dependencies to find out what other headers each boost header includes.

## Obsolete Libraries

- min_rand - a random number generator class from Beman Dawes. Replaced by random.

## Beta Libraries

- array_traits - tools to treat built-in arrays more like STL containers from Dietmar Kühl. Also see array.
- heaps - a heap of priority queues from Dietmar Kühl.

## Download

### .zip file

You may download all of boost as a single boost_all.zip file. As many boost headers include other boost headers, installing one at at time is painful. This is a first try at making installation easier.

If you don't already have a .zip file decoder, download one from the Info-ZIP web site. The .zip format is used for distribution because there are free decoders and encoders available for many, many different platforms. Many commercial compress/archive utilities also support this format.

Unix/Linux hints: boost_all.zip is built on a Win32 platform, so the line endings are wrong for Unix/Linux. Use the -a option when unzipping with InfoZip for Unix/Linux friendly line endings. Also note that a Linux user reports his decoder required renaming boost_all.zip to boost_all.ZIP.

### CVS archive

For those who have CVS installed, the libraries can also be downloaded from the public CVS repository. The general procedure goes something like this:

>     cvs -d:pserver:anonymous@cvs.boost.sourceforge.net:/cvsroot/boost login
>       [Hit <return> when it asks for a password]
>     cvs -z3 -d:pserver:anonymous@cvs.boost.sourceforge.net:/cvsroot/boost checkout boost
>     cvs -d:pserver:anonymous@cvs.boost.sourceforge.net:/cvsroot/boost logout

## Installing Boost Libraries

Many boost libraries are implemented entirely within their header files. The only preparation for their use is to add the path for the parent directory of the boost header sub-directory to your compiler's list of #include search directories.

> For example, using Windows 2000, if you have unzipped release 1.18.1 from boost_all.zip into the top level directory of your C drive, for Borland, GCC, and Metrowerks compilers add '-Ic:/boost_1_18_1' to the compiler command line, and for the Microsoft compiler add '/I "c:/boost_1_18_1"'. For IDE's, add 'c:/boost_1_18_1' (or whatever you have renamed it to) to the search list using the appropriate GUI dialog.

A few boost libraries are implemented by separate source files, and thus require compilation on your system to link properly. Boost does not currently have an overall "build" or "make" mechanism in place. Some of the individual libraries do include make and/or project files for various compilers.

Revised 05 Feb 2001