Skip to content
C++

Utilities & Strings

82 pages — optional, variant, expected, format, filesystem, chrono, string utilities, and more.

<bit>

C++20 header providing portable bit manipulation — rotation, counting, power-of-two math, endianness detection, and safe type-punning via bit_cast.

C++20
<cfenv>

C++11 header for IEEE 754 floating-point environment control — exception flags, rounding modes, and environment save/restore.

C++11
<cmath>

Standard C++ header providing mathematical functions for floating-point arithmetic, rounding, classification, and error handling.

C++98
<compare>

Three-way comparison ordering categories, the &lt;=> spaceship operator, and named comparison helpers introduced in C++20.

C++20
<csignal>

C-style signal handling in C++ — signal(), raise(), std::sig_atomic_t, and the strict rules for writing portable, async-signal-safe handlers.

C++98
<cstdint>

Fixed-width integer type aliases and limit macros for portable, size-explicit integer programming in C++.

C++11
<cstdlib>

C++ wrapper for C's stdlib.h, providing process control, raw memory allocation, numeric conversions, integer arithmetic, and pseudo-random numbers.

C++98
<cstring>

C++ header providing null-terminated string manipulation and raw memory operation functions inherited from C's <string.h>.

C++98
<functional> — Function Objects and Callable Utilities

The <functional> header provides function objects, std::function, std::bind, std::invoke, and callable wrappers for composing and passing behavior as first-class values.

C++98
<iomanip>

Parameterized stream manipulators for field width, fill character, numeric base, floating-point precision, monetary formatting, and date/time I/O.

C++98
<spanstream>

C++23 header providing stream I/O over std::span<char> buffers — fixed-capacity, zero-allocation alternatives to <sstream>.

C++23
<stdfloat>

C++23 header providing optional fixed-width extended floating-point types including IEEE 754 half, single, double, quad, and bfloat16 formats.

C++23
<system_error>

Portable, extensible error-code infrastructure for reporting OS and library errors as values rather than exceptions, introduced in C++11.

C++11
<typeinfo>

The <typeinfo> header provides std::type_info and bad_typeid — C++'s built-in runtime type identification primitives used with the typeid operator.

C++98
<utility>

The <utility> header provides foundational C++ building blocks — move, forward, swap, exchange, pair, declval, and safe integer comparisons.

C++98
<version>

C++20 header that centralises all standard library feature-test macros for portable compile-time capability detection.

C++20
Character Classification

Test character properties and convert between uppercase and lowercase using standard library functions.

C++98
Concepts Library

The C++20 <concepts> header provides standard named constraints — std::integral, std::regular, std::invocable — replacing SFINAE boilerplate with readable, composable template interfaces.

C++20
Cstdio

<cstdio> exposes C stdio (printf, fopen, snprintf, fread) in namespace std: formatted and binary file I/O, its pitfalls, and modern C++ alternatives.

C++98
Cstring Functions

Header <cstring> provides null-terminated C-style string functions: strlen, strcpy, strcat, strcmp, and memory operations for interop with C code.

C++98
Debugging Utilities

C++26 <debugging> header — std::breakpoint(), std::is_debugger_present(), and std::breakpoint_if_debugging() for programmatic debugger integration.

C++26
Exception Classes

The std::exception hierarchy, when to throw each standard type, how to write custom exceptions, and how to nest and transport exceptions across threads.

C++98
Execution Policies

Tag types and global constants that control whether STL algorithms run sequentially, in parallel, or with SIMD vectorization — introduced in C++17.

C++17
fstream

File stream classes for reading, writing, and random-access I/O on files; the <fstream> header provides ifstream, ofstream, and fstream.

C++98
iostreams — Input/Output Streams

"C++ iostream system: standard streams, file and string streams, stream state, manipulators, custom operators, rdbuf redirection, and performance tuning."

C++98
Iterator

The <iterator> header provides iterator categories, traits, adaptors, stream iterators, and free functions that bridge containers and algorithms.

C++98
Numeric Algorithms

"C++ numeric algorithms: accumulate, reduce, transform_reduce, prefix scans, inner_product, iota, gcd, lcm, midpoint, and lerp with parallel execution notes."

C++98
Random Number Generation

C++ <random> engines, distributions, seeding strategies, thread safety, and common pitfalls — from mt19937 to discrete_distribution.

C++11
Ranges Library

The C++20 ranges library provides composable, lazy sequences with concept-constrained algorithms and view adaptors via the pipe operator.

C++20
Reference Wrapper

std::reference_wrapper, std::ref and std::cref: copyable, assignable reference semantics for containers, bind, threads and generic callables.

C++11
Regex Advanced: Iterators, Token Splitting, and Replacement

Deep dive into std::regex_iterator, regex_token_iterator, regex_replace, capture groups, and regex grammar flags introduced in C++11.

C++11
sstream

Header providing std::istringstream, std::ostringstream, and std::stringstream for in-memory formatted I/O on std::string buffers.

C++98
std::any

Type-safe, type-erased container for a single value of any copy-constructible type, with runtime type queries and checked casts.

C++17
std::atomic

Thread-safe atomic operations without mutexes — memory orders, CAS loops, atomic_flag, atomic_ref (C++20), wait/notify (C++20), and lock-free patterns.

C++11
std::bind

std::bind, bind_front and bind_back: partial application, argument reordering and placeholders, with version history and when lambdas are the better choice.

C++11
std::bitset

Fixed-size bit manipulation with set/reset/flip/test, bitwise operators, and integer/string conversions — stack-allocated, no heap, no UB from shift overflow.

C++98
std::chrono

Type-safe time and duration library — durations, clocks, time points, and C++20 calendar and timezone types.

C++11
std::chrono — Advanced Usage

Advanced C++ chrono covering C++20 calendar types, time zones, zoned_time, date arithmetic, DST edge cases, formatting, and clock selection.

C++20
std::complex

Class template for complex number arithmetic with real and imaginary parts, arithmetic operators, math functions, and C++14 literals.

C++98
std::expected

C++23 vocabulary type holding either a success value T or an error value E, making failure modes explicit in the return type without exceptions.

C++23
std::filesystem

Cross-platform filesystem operations in C++17 — path manipulation, directory traversal, file status queries, and file I/O utilities.

C++17
std::flat_map and std::flat_set (C++23)

C++23 sorted contiguous-memory container adapters with O(log n) binary search and cache-friendly layout — no pointer chasing through tree nodes.

C++23
std::format

Type-safe, compile-time-checked text formatting introduced in C++20, replacing printf and stream-based output with Python-style format strings.

C++20
std::format and std::print

C++20 std::format and C++23 std::print — type-safe formatted output with compile-time checking, custom formatters, and efficient direct printing.

C++20
std::from_chars / std::to_chars

C++17 charconv — locale-independent, non-allocating, non-throwing conversion between numbers and character buffers.

C++17
std::function

A general-purpose polymorphic function wrapper that type-erases any callable matching a given signature, at the cost of runtime overhead.

C++11
std::hash and Custom Hash Functions

std::hash specialization, hash_combine design, transparent heterogeneous lookup (C++20), and custom hash requirements for unordered containers.

C++11
std::initializer_list

A lightweight, read-only view over a compiler-generated const array that enables brace-initialization syntax for functions and constructors.

C++11
std::inplace_vector (C++26)

Fixed-capacity vector with inline storage — dynamic size 0..N, no heap allocation, constexpr-compatible, and full std::vector-compatible API.

C++26
std::invoke

Uniformly call any callable (function, member pointer, functor, lambda) with std::invoke (C++17), std::invoke_r (C++23), and std::is_invocable traits.

C++17
std::linalg

C++26 BLAS-level 1/2/3 free functions operating on std::mdspan views for portable dense linear algebra without external library dependencies.

C++26
std::mdspan

Multi-dimensional non-owning view over contiguous data with pluggable layout and accessor policies. C++23 replacement for raw pointer and stride arithmetic.

C++23
std::numbers — Mathematical Constants

C++20 compile-time mathematical constants (π, e, φ, √2, and more) in <numbers>, available as double aliases and as precision-preserving variable templates.

C++20
std::numeric_limits

Class template providing compile-time type properties — range, precision, and representation flags — for all arithmetic types, replacing C-style macros.

C++98
std::optional

A value-or-nothing wrapper that eliminates sentinel values and nullable pointer workarounds in C++17.

C++17
std::optional Monadic Operations (C++23)

C++23 and_then, transform, and or_else on std::optional enable composable error-propagation pipelines without nested nullopt checks.

C++23
std::osyncstream

C++20 synchronized output stream that atomically transfers buffered content to a wrapped ostream, eliminating interleaved output in multithreaded programs.

C++20
std::pair and std::tuple

std::pair and std::tuple store multiple values. Structured bindings, std::tie, std::apply, and composition patterns for heterogeneous data.

C++11
std::ratio

Compile-time rational number arithmetic via template parameters — the unit system underlying std::chrono::duration.

C++11
std::regex

C++ regular expressions — regex_match, regex_search, regex_replace, capture groups, iterators, and when to reach for a faster library.

C++11
std::scoped_allocator_adaptor

C++11 allocator adaptor that propagates one or more allocators through every nesting level of a container hierarchy via std::uses_allocator.

C++11
std::simd — Portable SIMD (C++26)

std::simd<T, Abi>: type-safe portable SIMD in C++26 (P1928) — write vectorized code once, compile to SSE/AVX/NEON/SVE automatically without intrinsics or platform ifdefs.

C++26
std::source_location (C++20)

Capture file, line, column, and function name at the call site without macros — the C++20 replacement for __FILE__ and __LINE__.

C++20
std::span

Non-owning view over a contiguous sequence of objects. C++20's type-safe replacement for (pointer, length) pairs, working with arrays, vectors, std::array, and raw buffers.

C++20
std::stacktrace (C++23)

Capture and inspect runtime call stacks with std::stacktrace — frame iteration, exception integration, allocator control, and compiler setup.

C++23
std::stop_token / stop_source (C++20)

"C++20 cooperative cancellation primitives: stop_token, stop_source, stop_callback, and jthread integration for safe thread shutdown."

C++20
std::streambuf

Abstract base class for C++ stream buffers, mediating raw character I/O between higher-level streams and the underlying data device.

C++98
std::string

"The C++ standard string class — mutable, owning character sequences with construction, modification, searching, and conversions. Zero-copy alternatives: std::string_view."

C++98
std::string_view

"Non-owning, read-only string reference (C++17): zero-copy substrings, universal parameter type, constexpr usage, and lifetime hazards."

C++17
std::string_view

Non-owning view of a character sequence. Zero-copy alternative to const std::string&. Accepts literals, std::string, and char arrays without allocation.

C++17
std::tuple and std::pair

Fixed-size heterogeneous collections with value semantics — pair for two values, tuple for N values of any types, with structured bindings support.

C++11
std::type_index

A copyable, hashable wrapper around std::type_info enabling runtime type information to be used as keys in associative containers.

C++11
std::valarray

Numeric array with element-wise arithmetic, built-in math functions, and slice-based sub-array access for high-performance numerical computing.

C++98
std::variant

Type-safe tagged union holding exactly one of a fixed set of alternative types, introduced in C++17 with no heap allocation.

C++17
String Algorithms

C++ string operations — searching, splitting, trimming, case conversion, replace-all, and fast number parsing with from_chars and string_view.

C++98
String Conversions

C++ string conversions — to_string, stoi/stof, from_chars, to_chars, and std::format with C++ version discipline and performance trade-offs.

C++11
String Conversions and std::locale

Fast, locale-independent parsing with from_chars/to_chars (C++17), convenient stoi/stod (C++11), and locale-aware formatting via std::locale and its facets.

C++11
Swap and Exchange

std::swap, std::exchange, and std::iter_swap: semantics, noexcept rules, the ADL swap idiom, and how to implement move operations and copy-and-swap correctly.

C++11
Text Encoding

C++ character types, encoding-aware string types, and conversion facilities for UTF-8, UTF-16, UTF-32, and locale-dependent encodings.

C++11
Time Ctime

C-style date and time facilities in <ctime>: time_t, tm, clock, localtime, gmtime, strftime, and safe interop with std::chrono.

C++98
Type Traits

"Compile-time type inspection and transformation via <type_traits>: primary categories, property queries, type modifications, and custom trait authoring."

C++11
Wide Strings

Character and string types for wide character sets, including wchar_t, std::wstring, and Unicode-aware character types for international text.

C++98