C++Now 2026
2026-05-04..2026-05-08
Aspen, United States
C++Now ·
[C++Now 2017, C++Now 2018, C++Now 2019, C++Now 2022, C++Now 2023, C++Now 2024, C++Now 2026]
who it's for
C++ library authors, systems programmers, performance engineers, concurrency programmers, compiler and tooling engineers, software architects, embedded systems developers
topics
monadic operations for box types; functor applicative monad patterns; constexpr testing frameworks; taskflow priority scheduling; architecture dependent atomic performance; refactoring with type erasure; magic bitboards move generation; hand-rolled C++17 coroutines; compile-time borrow checker; multidimensional parallel C++ standard; control flow integrity in C++; coherent CMake target model
| title | author | length |
|---|---|---|
| Monadic Operations for Box-Like Types - Designing the Extensibility Model | Mikhail Svetkin | 01h 26m |
Proposes free-function monadic operations so std::optional, std::expected, Boost.Optional, raw pointers and C APIs like libcurl can all join one pipeline… | ||
| Functional Composition Beyond Monads | Jonathan Müller | 01h 16m |
Shows how to map functor/applicative/monad patterns onto C++: wraps callables with a small macro to build pipelines, implements fmap for… | ||
| Plato, Magritte, Sartre & Carroll - Learning Software Design from the Masters | Ben Deane | 01h 27m |
Argues that design comes from isolating essence before implementation and shows a concrete refactor of a messaging library: fields reduced to name+type as… | ||
| Testing Everything in Constexpr | Braden Ganetsky | 01h 29m |
Claims that code claimed to be constexpr must be tested at compile time and shows a C++20 testing toolchain: a parser library token plus a standalone test… | ||
| Multi-Priority Graph-Based Parallel Execution Using Taskflow | Yun Kai Peng | 46m |
Benchmarks add priority to C++ Taskflow with two practical modes: a buffered three-queue design (one chase-lev deque per priority plus a local buffer) and an… | ||
| When Atomics Lose - Architecture‑Dependent Performance of C++ Synchronization | Sampad Acharya | 43m |
Benchmarks use C++ atomics and std::mutex on real hardware (MacBook M3 Pro and a 64‑core x86 server), running 400 threads, 100k iterations across five… | ||
| Refactoring Legacy C++ OOP Application Code with Functional Programming and Type Erasure Concepts | Jessica Ding | 01h 17m |
Shows how to incrementally refactor a legacy C++ order-management codebase by extracting pure functions, replacing exception/bool error patterns with… | ||
| What is your Algorithmic Core? | Egor Suvorov | 44m |
Production C++ often hides small but critical algorithms; this talk shows how to extract and test them by example: a linear-time substring matcher implementing… | ||
| Optimizing Bishop, Rook, and Queen Move Generation in a Chess Engine | Aryan Naraghi | 01h 33m |
Claim: sliding-piece generation drops from ~20+ ns to ~1 ns by using magic bitboards implemented in software as a portable alternative to PEXT. Implementation… | ||
| No Compiler Required - Hand-Rolling C++20 Coroutines in C++17 | Johannes Kalmbach | 01h 35m |
Shows how a C++20 coroutine body maps to a C++17 heapallocated state machine by generating concrete coroutine frames, explicit suspension-indexed switch… | ||
| Algorithms for Trees - Foldable, Applicative, Traversable | Steve Downey | 01h 32m |
Proposes concrete C++ type‑class APIs (functor, foldable, applicative, traversable, monoid) with variable‑template lookup and static dispatch, shows working… | ||
| Compile-Time Borrow Checker with Stateful Metaprogramming | Alon Wolf | 01h 22m |
Claim is that a Rust‑style borrow checker can run entirely at compile time in C++ by recording a MIR‑like IR via stateful metaprogramming and analyzing it with… | ||
| Coroutines for Dummies | Dominic Fischer | 01h 20m |
C++20 coroutines make async code readable but hinge on how co_await transforms an expression into an awaitable with await_ready/await_suspend/await_resume; the… | ||
| Towards Async Everything Part 2 - Scopes, Construction, and Destruction | Robert Leahy | 01h 31m |
Implements an io_uring context and a sender/receiver model for asynchronous construction and destruction, turning constructors/destructors into composable… | ||
| Towards Async Everything Part 1 - Senders as the Lowest Layer | Robert Leahy | 01h 31m |
Argues that senders can be the lowest I/O layer by implementing async read_some directly on io_uring with std::execution primitives, showing a working design… | ||
| A Little Introduction to Control Flow Integrity in C++ | James McNellis | 01h 34m |
Survey of concrete defenses: shows the Morris worm 1988 exploit that nags the need for stack canaries (GCC 1997 / MSVC 2005), OS features like ASLR and NX… | ||
| After Reflection: The Runtime Story | Saksham Sharma | 01h 21m |
Builds a runtime numerical DSL that accepts C++ or Python frontends, captures computation with tracer-based graph capture, lowers the graph to either… | ||
| Scaling beman.exemplar | Eddie Nolan | 01h 34m |
beman.exemplar provides a ready CMake project template plus the infra to propagate it: a modern CMake layout, VC Package registry support with stamped… | ||
| Link What You Include - Maintain a Coherent CMake Target Model | Frank Miller | 01h 28m |
Tool enforces that CMake target link libraries match actual includes: if a target’s source or interface headers include B then CMake must list B, and vice… | ||
| How To Make Formal Methods A Software Quality Solution That Can Actually Be Used In The Industry | Steve Barriault | 42m |
Formal methods are presented as exhaustive for given input ranges via value analysis and abstract interpretation, guaranteeing no false negatives while still… | ||
| When Abstractions Fix Too Much - Towards Flexible Library Design | Patrick Roberts | 01h 31m |
Argues that policy-based library design turns fixed decisions (storage, dispatch, semantics) into interchangeable policies and shows a working proof in a real… | ||
| A Path to Practically Safe C++ | Yitzhak Mandelbaum | 01h 26m |
Google proposes a compiler-enforced spatial safety mode that bounds-checks static arrays, bans unchecked pointer arithmetic, and pushes spanification; Clang… | ||
| Beautiful C++ Code - Told Through the Eyes of A Failed AI Prompt | Erich Lohrmann | 56m |
Recreates a production message-passing channel by iterating prompts to an unnamed AI assistant, ending with a working C++ design that emphasizes… | ||
| From Template Metaprogramming to User Convenience - API Design Stories | Ruslan Arutyunyan | 01h 28m |
Two API fixes come from oneDPL/TBB work: first, replacing awkward braced lists with a constructor generator that uses std::array/to_array then an… | ||
| Typed Linear Algebra - How to Not Crash on Mars | François Carouge | 01h 24m |
An open source C++ library composes MPUnunits quantity types with existing backends (std::linalg/std::mdspan/Eigen/IGEN), using template metaprogramming… | ||
| Generic Programming for Multidimensional Arrays | Alfredo A. Correa | 01h 34m |
A C++ library that implements runtime-sized, strided multidimensional arrays and actually plugs them into STL-style algorithms, with GPU support via… | ||
| Lock-free Programming is Dead - Long Live Lock-free Programming! | Fedor G Pikus | 01h 38m |
Extensive CPU benchmarks on Intel, AMD, ARM and Apple silicon show spinlocks beat atomics under high contention—often improving whole-program throughput by… | ||
| Keynote: Benchmarking - It's About Time | Matt Godbolt | 01h 38m |
Live Linux clocks come from a kernel-provided VDSO so VDSO avoids syscalls and glibc often uses RDTSC/RDTSCP plus simple math to return nanoseconds… | ||
| Keynote: Multidimensional Parallel Standard C++ | Mark Hoemmen | 01h 27m |
Argues that Standard C++ exposes parallelism but lacks disjointness and true multidimensional support, and proposes three concrete fixes: exploit… | ||
| Keynote: Reflection Is Only Half the Story | Barry Revzin | 01h 34m |
C++26 reflection solves observation but not generation, so the talk argues for tooling that generates formatters, serializers and tuple_cat code from… | ||
| nothing matches | ||