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. 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 |
A popular library: networking and low-level I/O |
Assert |
C++03 |
Yes |
Active |
Core Boost utility |
Beast |
C++11 |
Yes |
Active |
HTTP/WebSocket; built on Boost.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 |
Optional |
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 (1) |
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; Boost.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 Boost.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 (2) 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 Boost.Spirit |
Spirit Repository |
C++03 |
Yes |
Legacy |
Additional first generation Boost.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 internally 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.Atomic 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+ |
Optional |
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 |
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 |
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 |
Header-only
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 library’s specific documentation on how to enable either version.
Footnotes
(1) A Voronoi diagram is a geometric structure that partitions a space into regions based on the proximity of a set of defined points, called sites or generators. Each region contains all locations that are closer to its associated site than to any other site. The boundaries between regions consist of points that are equidistant from two or more sites. Voronoi diagrams have applications in computational geometry, geographic information systems (GIS), robotics, biology, and telecommunications, where they are used for tasks such as determining nearest service locations, analyzing spatial distributions, and partitioning areas for efficient resource allocation.
(2) A BGL property map is an abstraction provided by Boost.Graph that allows algorithms to access and modify properties associated with graph elements, such as vertices and edges, without needing to know how those properties are stored. For example, a property map can associate each vertex with a distance value, a color, or a predecessor vertex, enabling graph algorithms such as Dijkstra’s shortest-path algorithm to operate on different graph representations using a consistent interface. Property maps can store data directly within graph objects (internal property maps) or externally in separate containers, such as vectors or arrays (external property maps). This separation of graph structure from property storage makes BGL algorithms more flexible, reusable, and adaptable to different data structures.