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.

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

std::any is standard

Array

C++03

Yes

C++11

Yes

Maintained

std::array supersedes principal use

Atomic

C++11

Partly

C++11

No

Active

Boost adds capabilities beyond std::atomic

Bind

C++11

Yes

C++11

Yes

Maintained / Legacy

Largely superseded by lambdas and std::bind

CharConv

C++11

Yes

C++17

Yes

Active

Character conversion; compatibility and extensions

Chrono

C++11

Partly

C++11

No

Maintained

std::chrono covers core functionality, Boost.Chrono adds clocks and utilities

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

std::chrono covers much modern use

Enable If

C++03

Yes

C++11

Yes

Legacy

std::enable_if

Endian

C++11

Partly

C++20+

Yes

Maintained

Byte-order utilities

Filesystem

C++11

Yes

C++17

No

Maintained / Legacy

std::filesystem supersedes core use

Foreach

C++03

Yes

C++11

Yes

Legacy

Range-based for supersedes principal use

Format

C++11

Partly

C++20

Yes

Active

Formatting beyond std::format in some areas

Function

C++11

Yes

C++11

Yes

Maintained

std::function

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 std::min/std::max; much of the functionality is now standard

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

std::optional

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

std::ratio

Regex

C++11

Yes

C++11

No

Maintained

std::regex covers standard regex facilities

Result Of

C++03

Partly

C++11

Yes

Legacy

Modern decltype, decltype(auto) and related language facilities supersede it

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

std::shared_ptr/std::unique_ptr and related facilities

Static Assert

C++03

Yes

C++11

Yes

Deprecated / merged

static_assert standardized; functionality merged into Config

String View

C++03

Yes

C++17

Yes

Legacy

std::string_view

Swap

C++03

Partly

C++11

Yes

Maintained

Swap customization utilities

System

C++11

Partly

C++11

Optional

Active

Boost.System extends std::error_code facilities

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 std::chrono

Tuple

C++03

Yes

C++11

Yes

Maintained / Legacy

std::tuple

Type Of

C++03

Yes

C++11

Yes

Legacy

Modern auto and decltype make its original purpose obsolete

Type Traits

C++03

Yes

C++11

Yes

Maintained

std::type_traits

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

std::variant

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.