Using Algorithms and Views
The Four Algorithm Families
The Producer-Consumer model of C++20 Ranges and the hardware implications of eager vs lazy evaluation.
Using Algorithms and Views
Sorting and Materialization
Integrate sorting into C++20 pipelines, the difference between stable and unstable sorts, and how to use partial sorting.
Using Algorithms and Views
Comparators and Projections
Learn how C++20 Projections allow us to separate sorting logic from data layout, the mechanics of std::invoke and the hardware reality of sorting large objects.
Using Algorithms and Views
Proxy Sort and Structure of Arrays
Learn why sorting large objects is slow, and how to optimize it using Proxy Sorting and Data-Oriented Design (SoA).
Using Algorithms and Views
Composition, Zipping, and Indicies
Iterate multiple containers simultaneously with zip, handle indices with enumerate, and skip elements with drop and stride.
Managing C++ Projects Using CMake
Building C++ Programs
Before working with CMake, it's useful to understand the tools it orchestrates. This lesson guides you through setting up a C++ toolchain.
Managing C++ Projects Using CMake
The Compilation Pipeline
Walking through the steps of the C++ compilation process, from source code to machine code.
Managing C++ Projects Using CMake
Object Files and the Linking Process
The linker's role in the build process, how it resolves symbols to combine object files, and how to troubleshoot common errors.
Managing C++ Projects Using CMake
Static and Shared Libraries
The difference between static and dynamic libraries, how to create them, and the trade-offs between them.
Iterators, Ranges, and Views
View Composition and Pipes
Learn how to build readable, lazy-evaluated data pipelines that execute in a single pass, and chain C++20 views together using the pipe operator |
Iterators, Ranges, and Views
The Iterator Pattern
The bridge between data layout and algorithms. Learn how iterators abstract memory traversal and the hierarchy of capabilities.
Iterators, Ranges, and Views
Standard Library Algorithms
An introduction to the C++ Standard Library's algorithms, lambda expressions, and handling memory safely with insertion iterators.