Skip to main content

Boost Knowledge Base

Boost is a collection of peer-reviewed, portable C++ libraries that sit one layer above the standard library. Many of today's standard facilities — shared_ptr, optional, variant, filesystem, thread, <random>, <chrono> — were first prototyped in Boost and later standardised. These docs cover the libraries you actually reach for in real projects: what each one solves, when to prefer it over the standard equivalent, and the gotchas that bite people.

How this is organised

Roughly outside-in: Introduction → Build & Integration get you compiling against Boost; the middle sections (Core, Smart Pointers, Containers, Strings, Algorithms) are the day-to-day utilities; the later sections (Concurrency, I/O, Networking, Serialization, Graph, Diagnostics) are the larger, domain-specific libraries. Each folder is self-contained — follow the cross-links between pages.

Sections

SectionWhat it covers
IntroductionWhat Boost is, its philosophy, installing it, header-only vs compiled, relation to the standard
Build & Integrationb2 (Boost.Build), CMake, vcpkg/Conan, Boost.Config portability macros
Core & UtilitiesCore, Utility, Assert, Optional, Variant, Any, lexical_cast
Smart Pointers & Memoryshared_ptr, intrusive_ptr, scoped_ptr, Pool, Align
ContainersContainer, Unordered, MultiIndex, Bimap, Intrusive, circular_buffer
Strings & TextString Algo, Format, Tokenizer, Regex, Spirit
Algorithms, Iterators & RangesAlgorithm, Range, Iterator adaptors, BOOST_FOREACH
Functional & MetaprogrammingFunction, Bind, Phoenix, Hana, MPL, Fusion, TypeTraits
Math & NumericsMath, Multiprecision, Random, Rational, numeric conversion, Accumulators, uBLAS
Concurrency & AsyncThread, Atomic, Asio, Lockfree, Fiber, Coroutine2, Interprocess
I/O & SystemFilesystem, Iostreams, Program_options, Process, DLL, System
NetworkingTCP/UDP with Asio, HTTP/WebSocket with Beast
Serialization & DataSerialization, PropertyTree, JSON
Date, Time & UnitsDate_Time, Chrono, Units (dimensional analysis)
Graph & GeometryThe Boost Graph Library, Geometry, Polygon
Diagnostics & TestingBoost.Test, Stacktrace, Log
Language Tools & MiscPreprocessor, UUID, Signals2

How the pieces relate

Suggested reading paths

Conventions used across these docs
  • Examples assume a recent Boost (1.7x+) and compile against C++17 or later; version notes are tagged inline where they matter.
  • Admonitions flag the important bits: info for context, tip for guidance, note for asides, warning/danger for foot-guns.
  • Where a Boost library has since been standardised, the page says so and points at the std equivalent so you can choose deliberately.
  • Diagrams are Mermaid; tables prefer plain words over decorative symbols.