Boost Libraries Reference
The tables in this section should help you determine what Boost libraries are currently receiving the most attention, and whether some or all of the functionality the library offers is now available in the C++ Standard.
- Note
-
These tables are a work-in-progress and suggestions for updates are welcome, via Reporting Issues.
Active Libraries Unique to Boost
The following libraries are actively updated and equivalent functionality is not included in the C++ Standard.
| Library | Minimum C++ | Header-only | Status | Status Notes |
|---|---|---|---|---|
Accumulators |
C++03 |
Yes |
Active / Maintained |
Mature statistical accumulator framework |
Asio |
C++11 |
Yes |
Active |
Networking and low-level I/O |
Assert |
C++03 |
Yes |
Active |
Core Boost utility |
Beast |
C++11 |
Yes |
Active |
HTTP/WebSocket; built on Asio |
Bloom |
C++11 |
Yes |
Active |
Bloom filters |
CallableTraits |
C++11 |
Yes |
Active |
Callable type introspection |
Cobalt |
C++20 |
Yes |
Active |
Modern coroutine framework |
Config |
C++03 |
Yes |
Active |
Boost infrastructure |
Context |
C++11 |
No |
Active |
Low-level context switching |
Contract |
C++11 |
No |
Active |
Contracts framework |
Convert |
C++11 |
Yes |
Active |
Conversion framework |
Decimal |
C++14 |
Yes |
Active |
An implementation of IEEE 754 and ISO/IEC DTR 24733 |
Describe |
C++14 |
Yes |
Active |
Compile-time reflection-like metadata |
DLL |
C++11 |
Yes |
Active |
Dynamic library loading |
Fiber |
C++11 |
No |
Active |
User-space cooperative threads |
Geometry |
C++14 |
Yes |
Active |
Computational geometry |
GIL |
C++14 |
Yes |
Active |
Generic image library |
Graph |
C++14 |
Optional |
Active |
Graph algorithms and data structures |
Hana |
C++14 |
Yes |
Active |
Modern metaprogramming |
Hash2 |
C++11 |
Yes |
Active |
Modern hash framework |
Histogram |
C++14 |
Yes |
Active |
Multidimensional histograms |
IO |
C++03 |
Yes |
Active / Maintained |
Stream-state savers, quoted manipulators, ostream joiners, null streams and related utilities. |
Interprocess |
C++03 |
Yes |
Active |
Shared memory and process synchronization |
Intrusive |
C++03 |
Yes |
Active |
Intrusive containers |
JSON |
C++11 |
No |
Active |
JSON parsing and serialization |
LEAF |
C++11 |
Yes |
Active |
Lightweight error handling |
Locale |
C++11 |
No |
Active / Maintained |
Localization and Unicode support |
Lockfree |
C++14 |
Yes |
Active |
Lock-free data structures |
Math |
C++14 |
Optional |
Active |
Numerical and special functions |
MQTT5 |
C++17 |
Yes |
Active |
MQTT 5 client |
Multi-Index |
C++03 |
Yes |
Active / Maintained |
Multi-index containers |
Multiprecision |
C++14 |
Yes |
Active |
Arbitrary precision arithmetic |
MySQL |
C++11 |
Yes |
Active |
MySQL client library |
Nowide |
C++11 |
No |
Active |
Portable Unicode-aware Windows interfaces |
Odeint |
C++11 |
Yes |
Active / Maintained |
Ordinary differential equations |
OpenMethod |
C++17 |
Yes |
Active |
Open multi-method dispatch |
Outcome |
C++14 |
Yes |
Active |
Outcome/result-style error handling |
Parser |
C++17 |
Yes |
Active |
Parser combinators |
PFR |
C++14 |
Yes |
Active |
Precise function reflection-like aggregate utilities |
PolyCollection |
C++11 |
Yes |
Active / Maintained |
Polymorphic collections |
Polygon |
C++11 |
Yes |
Active / Maintained |
Computational geometry, polygon Boolean operations and Voronoi diagrams. |
Predef |
C++98 |
Yes |
Active |
Platform/compiler detection infrastructure |
Preprocessor |
C++03 |
Yes |
Active |
Preprocessor metaprogramming |
Process |
C++11 |
Yes |
Active |
Process management |
Python |
C++03 |
No |
Active / Maintained |
Python/C++ interoperability |
QVM |
C++03 |
Yes |
Active |
Quaternions, vectors and matrices |
Redis |
C++17 |
Yes |
Active |
Redis client |
Safe Numerics |
C++14 |
Yes |
Active |
Checked numeric operations |
Serialization |
C++03 |
No |
Active / Maintained |
Serialization framework |
Sort |
C++03 |
Yes |
Active |
High-performance sorting |
Spirit |
C++03 |
Yes |
Active / Maintained |
Parser framework |
Stacktrace |
C++11 |
No |
Active |
Stack trace capture |
Static String |
C++11 |
Yes |
Active |
Fixed-capacity strings |
Stl Interfaces |
C++14 |
Yes |
Active |
Reusable STL/range interfaces |
Test |
C++11 |
Optional |
Active |
Unit testing framework |
Type Erasure |
C++03 |
No |
Active / Maintained |
Runtime type erasure |
Type Index |
C++11 |
Yes |
Active / Maintained |
Portable runtime type information |
uBLAS |
C++03 |
Yes |
Active / Maintained |
Linear algebra |
Units |
C++03 |
Yes |
Active / Maintained |
Dimensional analysis |
URL |
C++11 |
No |
Active |
URL parsing/manipulation |
Uuid |
C++11 |
Yes |
Active |
UUID generation/manipulation |
Wave |
C++11 |
No |
Active / Maintained |
Preprocessor implementation |
YAP |
C++14 |
Yes |
Active / Maintained |
Yet Another Parser framework |
Maintained and Legacy Libraries Unique to Boost
The following libraries are not included in the C++ Standard, though are either legacy (included for compatibility purposes) or in maintenance mode (bug fixes but usually no new functionality). Essentially this table contains libraries that are maintained, mature, legacy, or essentially complete.
| Library | Minimum C++ | Header-only | Status | Status Notes |
|---|---|---|---|---|
Assign |
C++11 |
Yes |
Maintained |
Convenience initialization utilities |
Bimap |
C++03 |
Yes |
Maintained |
Bidirectional associative containers |
Call Traits |
C++03 |
Yes |
Maintained |
Legacy type traits |
Circular Buffer |
C++03 |
Yes |
Maintained |
Circular buffer container |
Compute |
C++03 |
Yes |
Maintained / Legacy |
GPU/parallel computing |
Concept Check |
C++03 |
Yes |
Maintained / Legacy |
Older concept-checking facilities |
Conversion |
C++11 |
Yes |
Maintained |
Polymorphic conversion utilities |
Coroutine |
C++03 |
No |
Legacy |
Superseded for most new work by C++20 coroutines |
Coroutine2 |
C++11 |
Yes |
Maintained |
Stackful coroutine model |
CRC |
C++11 |
Yes |
Maintained |
CRC algorithms |
Dynamic Bitset |
C++11 |
Yes |
Maintained |
Dynamic-size bitsets |
Exception |
C++03 |
Optional |
Maintained |
Exception helpers |
Flyweight |
C++03 |
Yes |
Maintained |
Flyweight pattern implementation |
Function Types |
C++03 |
Yes |
Legacy |
Boost.CallableTraits is its successor |
Fusion |
C++03 |
Yes |
Maintained / Legacy |
Heterogeneous sequence framework |
GraphParallel |
C++03 |
No |
Maintained |
Parallel graph algorithms |
HOF |
C++11 |
Yes |
Maintained |
Higher-order functions |
ICL |
C++03 |
Yes |
Maintained |
Interval containers and interval operations |
Identity Type |
C++03 |
Yes |
Legacy |
Protects parenthesized types when passing macro arguments. |
Interval |
C++03 |
Yes |
Maintained |
Numeric intervals |
Iostreams |
C++03 |
No |
Maintained |
Stream filtering and devices |
Lexical Cast |
C++11 |
Yes |
Maintained |
String/type conversion |
Local Function |
C++03 |
Yes |
Legacy |
Lambdas supersede principal use |
Member Function |
C++11 |
Yes |
Maintained / Legacy |
Member-function utilities |
Metaparse |
C++03 |
Yes |
Maintained / Legacy |
Compile-time parser framework |
Meta State Machine |
C++03 |
Yes |
Maintained / Legacy |
Compile-time state machines |
MPI |
C++03 |
No |
Maintained |
Message passing interface |
MPL |
C++03 |
Yes |
Maintained / Legacy |
Classic metaprogramming; Mp11 is modern alternative |
Multi-Array |
C++03 |
Yes |
Maintained |
Multidimensional arrays |
Numeric Conversion |
C++03 |
Yes |
Maintained |
Checked numeric conversions |
Operators |
C++03 |
Yes |
Maintained / Legacy |
Operator generation utilities |
Parameter |
C++03 |
Yes |
Maintained / Legacy |
Function parameter framework |
Parameter Python Bindings |
C++03 |
Yes |
Maintained / Legacy |
Python bindings for Boost.Parameter. |
Phoenix |
C++03 |
Yes |
Maintained / Legacy |
Expression templates - especially for Spirit |
Pointer Container |
C++03 |
Yes |
Maintained / Legacy |
Dynamically allocated polymorphic objects in containers. No longer necessary in most cases. |
Pool |
C++03 |
Yes |
Maintained |
Memory pools |
Program Options |
C++11 |
No |
Maintenance |
Essentially done; stability is primary goal |
Property Map |
C++11 |
Yes |
Maintained |
BGL property-map abstraction |
Property Tree |
C++11 |
Yes |
Maintained |
Hierarchical configuration data |
Proto |
C++03 |
Yes |
Maintained / Legacy |
Expression-template framework |
Rational |
C++11 |
Yes |
Maintained |
Rational arithmetic |
Ref |
C++03 |
Yes |
Maintained / Legacy |
Reference wrappers |
Scope Exit |
C++03 |
Yes |
Legacy |
Scope-exit utilities; largely superseded by newer facilities |
Signals2 |
C++03 |
Yes |
Maintained |
Type-safe signals and slots |
Spirit Classic |
C++03 |
Yes |
Legacy |
First generation Spirit |
Spirit Repository |
C++03 |
Yes |
Legacy |
Additional first generation Spirit components |
Statechart |
C++03 |
Yes |
Maintained / Legacy |
State machine framework |
String Algo |
C++03 |
Yes |
Maintained |
String algorithms |
ThrowException |
C++03 |
Yes |
Maintained / Legacy |
Used by Boost Libraries, not applications |
Tokenizer |
C++03 |
Yes |
Maintained |
Tokenization utilities |
Tribool |
C++03 |
Yes |
Maintained / Legacy |
Three-state boolean |
TTI |
C++03 |
Yes |
Maintained / Legacy |
Type trait introspection |
VMD |
C++03 |
Yes |
Maintained |
Variadic macro data |
Libraries Consumed into the Standard
The following libraries, in whole or in a significant part, are now part of the C++ Standard. If you are considering using any one of these libraries, it would be good practice to investigate the Standard equivalents before deciding whether to include any of these, as the functionality you are looking for may already be available.
| Library | Minimum C++ | Consumed by Standard | Standard version | Header-only | Status | Status Notes |
|---|---|---|---|---|---|---|
Algorithm |
C++03 |
Partly |
C++20+ |
Yes |
Active |
Generic algorithms; some overlap with standard algorithms |
Align |
C++03 |
Partly |
C++11+ |
Yes |
Maintained |
Alignment facilities largely standardized |
Any |
C++11 |
Yes |
C++17 |
Yes |
Maintained |
|
Array |
C++03 |
Yes |
C++11 |
Yes |
Maintained |
|
Atomic |
C++11 |
Partly |
C++11 |
No |
Active |
Boost adds capabilities beyond |
Bind |
C++11 |
Yes |
C++11 |
Yes |
Maintained / Legacy |
Largely superseded by lambdas and |
CharConv |
C++11 |
Yes |
C++17 |
Yes |
Active |
Character conversion; compatibility and extensions |
Chrono |
C++11 |
Partly |
C++11 |
No |
Maintained |
|
Compat |
C++11 |
Yes |
Various |
Yes |
Active |
Compatibility implementations for newer standard facilities |
Compressed Pair |
C++03 |
Partly |
C++20 |
Yes |
Maintained |
Optimization utility; standard equivalents cover parts |
Container |
C++03 |
Partly |
C++11+ |
No |
Active |
Containers and extensions beyond standard containers |
Container Hash |
C++11 |
Yes |
C++11+ |
Yes |
Maintained |
Hashing support largely standardized |
Core |
C++03 |
Partly |
C++11+ |
Yes |
Active |
Small utilities used throughout Boost |
Date Time |
C++03 |
Partly |
C++11 |
No |
Maintained / Legacy |
|
Enable If |
C++03 |
Yes |
C++11 |
Yes |
Legacy |
|
Endian |
C++11 |
Partly |
C++20+ |
Yes |
Maintained |
Byte-order utilities |
Filesystem |
C++11 |
Yes |
C++17 |
No |
Maintained / Legacy |
|
Foreach |
C++03 |
Yes |
C++11 |
Yes |
Legacy |
Range-based for supersedes principal use |
Format |
C++11 |
Partly |
C++20 |
Yes |
Active |
Formatting beyond |
Function |
C++11 |
Yes |
C++11 |
Yes |
Maintained |
|
Functional |
C++03 |
Partly |
C++11+ |
Yes |
Maintained / Legacy |
Functional utilities largely standardized |
Heap |
C++14 |
Partly |
C++11 |
Yes |
Active |
Heap and priority-queue structures |
In Place Factory |
C++03 |
Yes |
C++11 |
Yes |
Legacy |
Provides in-place construction factories, replaced with new functionality |
Integer |
C++03 |
Partly |
C++11 |
Yes |
Maintained |
Integer types and constants |
Iterator |
C++11 |
Partly |
C++20 |
Yes |
Maintained |
Iterator utilities; ranges supersede some use |
Lambda |
C++03 |
Yes |
C++11 |
Yes |
Legacy |
C++11 lambdas supersede principal use |
Lambda2 |
C++14 |
Yes |
C++11 |
Yes |
Legacy |
Lambda-related compatibility facility |
Min-Max |
C++03 |
Yes |
C++11 |
Yes |
Legacy |
Extensions to |
Move |
C++03 |
Partly |
C++11 |
Yes |
Maintained |
Move semantics compatibility |
Mp11 |
C++11 |
Partly |
C++11-17 |
Yes |
Active |
Modern C++11 metaprogramming library; continues to receive changes. |
Optional |
C++11 |
Yes |
C++17 |
Yes |
Maintained |
|
Random |
C++11 |
Partly |
C++11 |
Optional |
Active / Maintained |
Random distributions and engines |
Range |
C++03 |
Partly |
C++20 |
Yes |
Maintained / Legacy |
Ranges supersede much of original role |
Ratio |
C++11 |
Yes |
C++11 |
Yes |
Maintained |
|
Regex |
C++11 |
Yes |
C++11 |
No |
Maintained |
|
Result Of |
C++03 |
Partly |
C++11 |
Yes |
Legacy |
Modern |
Scope |
C++11 |
Partly |
C++26 |
Yes |
Active |
Scope guards and related facilities |
Scope Exit |
C++03 |
Partly |
C++23-26 |
Yes |
Legacy |
Boost.Scope is the modern replacement |
Smart Ptr |
C++11 |
Yes |
C++11 |
Yes |
Maintained |
|
Static Assert |
C++03 |
Yes |
C++11 |
Yes |
Deprecated / merged |
|
String View |
C++03 |
Yes |
C++17 |
Yes |
Legacy |
|
Swap |
C++03 |
Partly |
C++11 |
Yes |
Maintained |
Swap customization utilities |
System |
C++11 |
Partly |
C++11 |
Optional |
Active |
Boost.System extends |
Thread |
C++11 |
Partly |
C++11 |
No |
Active / Maintained |
Threading facilities beyond the standard set |
Timer |
C++03 |
Partly |
C++11 |
No |
Maintained / Legacy |
The newer CPU timers provide functionality beyond |
Tuple |
C++03 |
Yes |
C++11 |
Yes |
Maintained / Legacy |
|
Type Of |
C++03 |
Yes |
C++11 |
Yes |
Legacy |
Modern auto and |
Type Traits |
C++03 |
Yes |
C++11 |
Yes |
Maintained |
|
Unordered |
C++11 |
Yes |
C++11 |
Yes |
Active |
Unordered containers and extensions |
Utility |
C++03 |
Partly |
C++11+ |
Yes |
Maintained |
Collection of small utilities |
Value Initialized |
C++03 |
Yes |
C++11 |
Yes |
Legacy |
Now largely irrelevant |
Variant |
C++11 |
Yes |
C++17 |
Yes |
Maintained / Legacy |
|
Variant2 |
C++11 |
Yes, conceptually |
C++17 |
Yes |
Active |
Alternative variant implementation |
Xpressive |
C++03 |
Partly |
C++11 |
Yes |
Legacy |
Regex DSL - generally superseded by standard regex |
Notes
The libraries marked No for Header-only need a binary built before linking. These binaries are built by default if you use the B2 build tool.
The libraries marked as Optional for Header-only add some functionality if the linked-binary version of the library is selected. For more details refer to Optional Compiled Binaries, and to the libraries specific documentation on how to enable either version.