C++ on Sea 2024
2024-07-02..2024-07-05
Folkestone, United Kingdom
[C++ on Sea 2019, C++ on Sea 2020, C++ on Sea 2021, C++ on Sea 2022, C++ on Sea 2023, C++ on Sea 2024, C++ on Sea 2025]
| title | author | length |
|---|---|---|
| Keynote: There Is No Silver Bullet to Solve All C++ Software Problems | Klaus Iglberger | 51m |
Compares three concrete implementations for a shape-drawing app: classic GoF OOP with virtual functions, a value-based functional solution using std::variant… | ||
| How to Implement the C++ Standard Library (Part 2): An Excursion into libc++ | Christopher Di Bella | 59m |
Live demo implements ranges::fold_right inside libc++ by adding tests, a new header, CMake entry and a function object; uses LLVM/Clang checkout, CMake, ninja… | ||
| How To Implement the C++ Standard Library - (Part 1 of 2) | Christopher Di Bella | 57m |
Part I lays out concrete steps: read the standardese not cppreference, use test driven development with assert-based unit tests for libstdc++/libc++, fuzz the… | ||
| This is C++ - How to Use the C++ Superpower to Write Better C++ Code | Jon Kalb | 01h 23m |
Argues C++’s superpower is uncompromised performance achieved by embracing undefined behavior and the zero‑overhead rule, then shows concrete costs: a safe div… | ||
| What is Swarm Intelligence? - Swarm AI Explained | Frances Buontempo | 57m |
C++ implementations use SFML to draw agents and a simple game loop, demonstrating particle swarm, ant colony and bee heuristics and a paper‑bag cat swarm demo… | ||
| Properties Of Unit Tests in C++ | Arne Mertz | 38m |
Argues unit tests must be tiny and fast — aim for milliseconds per test so thousands run in minutes; expect roughly 10:1 test:prod code and design tests to be… | ||
| Allocator-Aware C++ Type Design | Jonathan Coe | 34m |
Adds allocator support to a simple DynamicOptional as a worked reference implementation: allocator becomes a second template parameter defaulting to… | ||
| Testable by Design - How to Create Testable C++ Code Using C++ Language Features | Steve Love | 51m |
Builds a small heating controller (timer + thermostat + override activator) that composes an abstract heating activator API, uses fake implementations and… | ||
| Time Travel Debugging - Debug Complex C++ Bugs With Software from Undo | Mark Williamson | 58m |
Demo shows Undo’s time travel debugger recording instruction-level traces of a running process (Chocolate Doom demo) and replaying them to rewind from a single… | ||
| Pets, Cattle and Automatic Clang Operations with C++ Code | Svyatoslav Feldsherov | 49m |
Shows how to use Clang tooling to automate real refactors and searches using clang-query matchers, clang-transform/ClangTidy fixes, and libclang python… | ||
| C++ Core and Other C++ Guidelines - The Good, the Bad, the… Questionable? | Arne Mertz | 55m |
Compares C++ Core Guidelines to how teams actually apply them, showing concrete mismatches: boilerplate from blindly applying the rule of five, projects… | ||
| Introduction to C++ Coroutines and gRPC and How to Write Coroutine Support Code | Jonathan Storey | 01h 00m |
Explains how to add coroutine support to gRPC by writing a custom promise type and an awaitable/awaiter that starts start_write, stores the coroutine_handle in… | ||
| Dependency Injection in C++ - A Practical Guide | Peter Muldoon | 01h 01m |
Practical strategies for adding DI to a legacy C++ ticker-plant: rejects link-time substitution (avoid), compares inheritance/virtual interfaces, templates and… | ||
| Practical Production-Proven Constexpr API Elements | Marcus Boerger | 01h 13m |
A production C++ library (published on GitHub, built with Bazel) implements MBO library techniques to move runtime containers into constexpr: uninitialized… | ||
| Comparison of C++ Performance Optimization Techniques for C++ Programmers | Eduardo Madrid | 01h 12m |
Benchmarks show a custom C++ library (SU/SWAR style) implementing strlen and atoi variants that beats GLIBC consistently, using AVX2/NEON intrinsics and… | ||
| Practical Tips for Safer C++ | Tristan Brindle | 01h 13m |
Shows concrete defenses: use -ftrapv / -fwrapv or -fsanitize=signed-integer-overflow,unsigned-integer-overflow to catch/define integer UB (trap in debug, wrap… | ||
| Overengineering max(a, b) Mixed Comparison Functions, Common References & Rust Lifetime Annotations | Jonathan Müller | 01h 09m |
Implements a fully generic max/min/clamp that handles mixed-type comparisons, fixes unsafe int/unsigned behavior with a TC_common_type that rejects unsafe… | ||
| Fantastic C++ Bugs and How to Test Them | Robert Leahy | 52m |
Shows a concrete pcap included length bug where rewritten padding desynchronizes readers and is fixed with two code lines but protected by 150 lines of tests… | ||
| C++20 Modules - Review of the Current State of C++ Modules 2024 | Luis Caro Campos | 01h 01m |
C++20 modules work but are still rough in practice: CMake 3.28 adds CMake 3.28 dependency scanning and Ninja 1.10 supports on‑the‑fly reorder so compilers can… | ||
| How and When To Write a C++ Template | Roth Michaels | 59m |
Covers concrete rules and tradeoffs: when templates save code versus when a variant or type erasure is better, concrete examples (optional, std::find, variadic… | ||
| How Linux Elf Symbols Work and How They Are Used in C++ and C Programming | Anders Schau Knatten | 01h 02m |
Simple example compiles values.c and main.c into object files, links an executable that returns 42, and is inspected with objdump nm readelf strip to show… | ||
| Keynote: Not Getting Lost in Translations in C++ Software Development | Daniela Engert | 54m |
Claims ability to keep compile-time validation of std::format-style format strings while allowing runtime language selection; implements a pipeline that… | ||
| Being Friendly to Your Computer Hardware in Software Development | Ignas Bagdonas | 01h 06m |
Practical systems lose most potential of modern hardware because software ignores memory geometry and controllers: useful bus time is around 10% bus… | ||
| C++ Object Lifetimes - Objects and Lifetimes in C++ Explained | Jonathan Müller | 01h 11m |
Concrete rules for when an object’s lifetime actually starts and ends, and when the compiler can assume it never happens, are explained with examples… | ||
| Elevating Precision in C++ - A Journey Below the Surface of Floating-Point | Tom Tesch | 50m |
Deep dive into IEEE754 bits, recent C++ types and a working double-double (Decker double) implementation that actually reduces rounding error by orders of… | ||
| Unlock the Power of Parallel Computing With SWAR (SIMD Within A Register) | Jamie Pond | 43m |
Claims that SIMD-like speed is possible using ordinary CPU registers by packing lanes and using bitwise tricks to prevent lane‑crossing, so no special SIMD… | ||
| How to Keep C++ Binaries Small - Techniques for C++ Optimization | Sandor Dargo | 02h 25m |
Shows concrete levers and measured wins: a global array initialized to ones produces ~100 KB while changing to zero collapses it to ~16 KB (99K → 16K by… | ||
| Reusable C++ Code, Reusable C++ Data Structures | Sebastian Theophil | 50m |
Shows how a real layout algorithm called vertical center example gets reused for widgets and rectangular bitmaps by refactoring to a templated function that… | ||
| C++ Iteration Revisited 2024 | Tristan Brindle | 01h 23m |
Argues that STL iterators cause UB (dangling, invalidation, out‑of‑bounds) and replaces pointer semantics with an index/cursor model implemented in Flux, a… | ||
| Improving Our Safety With a Modern C++ Quantities and Units Library | Mateusz Pusz | 01h 31m |
Shows a concrete library: mp‑units implements P2981 to enforce compile‑time physical quantity and unit safety with C++20 (optional C++23) features, no… | ||
| What Is a Range in C++? | Šimon Tóth | 51m |
C++20 formalizes ranges as types with ranges::begin and ranges::end, plus iterator categories that imply sized range, common range, or borrowed range… | ||
| Temporal Dynamics - Exploring the Intricacies of Object Lifetimes in Modern C++ | Riya Bansal | 39m |
Builds a database connection pool at Microsoft scale, disables copying and uses deleted copy constructors plus move constructors and move-assignment to avoid… | ||
| Temporal Dynamics - Exploring the Intricacies of Object Lifetimes in Modern C++ | Riya Bansal | 39m |
Builds a database connection pool that enforces move only semantics, disables copying, and uses RAII plus smart pointers to avoid leaks, showing… | ||
| Building on clang-tidy to Move From printf-style to std::print-style Logging and Beyond | Mike Crowe | 44m |
Migrates C printf-style logging to libfmt's fmt::printf then to fmt::print/std::print using custom clang-tidy checks that convert format strings, add casts for… | ||
| Floating-Point to String Conversion in C++: Exploring Algorithms & Performance | Cassio Neri | 57m |
Introduces a new TJaguar (Jaguar) algorithm that converts IEEE‑754 floats to decimal by decoding sign/exponent/mantissa, using precomputed power‑of‑two lookup… | ||
| C++ Fundamentals - Algorithms | Klaus Iglberger | 46m |
Uses a Simpsons vector to show concrete replacements for raw loops: finding the youngest with min_element with projection (fixes custom compare), grouping kids… | ||
| Who Needs C++ Unit Tests Anyway? - Modernizing Legacy Code with 0% Code Coverage | Jan Baart | 58m |
Practical roadmap for modernizing a 25‑year C++ codebase that may start at 0% code coverage: set up a dedicated team and an approachable “guru”, upgrade… | ||
| C++ Abstraction Patterns for Cross Platform Development in C++ Software Engineering | Al-Afiq Yeong | 41m |
Compares five concrete patterns and their tradeoffs using a two-backend example (DX12 and Vulkan). preprocessor macros produces exponential, unmergeable… | ||
| Understanding The constexpr 2-Step | Jason Turner | 01h 03m |
Explains the constexpr two-step: generate dynamic data at compile time with constexpr new/delete, copy it into an oversized stack-style array, then create a… | ||
| Hiding Your Implementation Details in C++ is Not So Simple | Amir Kirsh | 01h 03m |
Argues that putting fields private is necessary but not sufficient and shows concrete fixes: replacing public std::pair-style members with getters to allow… | ||
| Catching Real-time Safety Violations in C++ | Dave Rowland | 54m |
Describes a practical stack for finding real‑time safety violations: use kernel tracers (mac System Trace, dtrace, strace/ltrace) to catch syscalls and futex… | ||
| C++ Run-Time Optimizations for Compile-Time Reflection | Kris Jusiak | 01h 05m |
C++26 static reflection plus C++20 tricks get applied to enum_to_string and string_to_enum, with concrete code paths and benchmarks. LLVM MCA guides decisions… | ||
| A Kaleidoscope of C++ Lambdas | Dawid Zalewski | 01h 00m |
Covers concrete lambda evolution and gotchas across C++11→C++26: shows how init captures let you move-only capture and how C++14 adds generic lambdas and… | ||
| C++ Cache Friendly Data + Functional + Ranges = ❤️ | Björn Fahller | 55m |
Claims an ergonomic C++ wrapper that gives the speed of structs‑of‑vectors with normal tuplelike and range APIs, using modern features (ranges, structured… | ||
| OLD VERSION: Understanding The constexpr 2-Step | Jason Turner | 01h 03m |
C++20 makes std::vector and std::string usable in constant expressions yet direct constexpr heap allocation fails because memory allocated at compile time must… | ||
| Hylo - The Safe Systems and Generic-programming Language Built on Value Semantics | Dave Abrahams | 01h 19m |
Hylo is a new language (formerly Val) built around strict mutable value semantics with a working compiler and the bones of a standard library; the team… | ||
| Bloomberg - Careers with No Limit | 01m | |
Bloomberg is building the world's most trusted information network for financial professionals. Our 9,000+ dedicated engineers are advancing and building new… | ||
| Talk Preview: How Symbols Work and Why We Need Them | Anders Schau Knatten | 01m |
Covers Linux ELF symbol mechanics for C and C++, showing how binaries actually map names to code and data, and how to inspect them with objdump/readelf… | ||
| Talk Preview: A new dragon in the den: fast conversion from floating-point numbers | Cassio Neri | 01m |
Covers a new algorithm that converts IEEE floats and doubles to textual form by deriving the conversion from first principles, implementing it in C++ and… | ||
| C++ On Sea 2024 Preview: Testable by Design | Steve Love | 01m |
Unit testing in C++ already has unit testing tool support, but the focus is on how language features change testability and everyday design decisions. The… | ||
| C++ On Sea 2024 Preview - Aleksei Veselovskii - LSAN and ASAN: tips, tricks and hacks | Aleksei Veselovskii | 01m |
Explains LSAN internals including the combined memory manager, interceptors and a garbage collector that deliberately does not collect garbage; demonstrates… | ||
| C++ On Sea 2024 Preview: How to keep your binaries small? | Sandor Dargo | 01m |
Two and a half hour workshop preview that shows concrete levers to shrink C++ binaries: which exceptions and RTTI costs size, which compiler and linker flags… | ||
| C++ Workshop and Talk Preview With Nicolai Josuttis for C++OnSea 2024 | Nicolai M. Josuttis | 10m |
Two-day workshop: systematic walkthrough of C++20 concepts (how they constrain generics and dramatically improve error messages), ranges, views and their… | ||
| Talk Preview: Building on clang-tidy: move from printf-style to std::print-style logging | Mike Crowe | 01m |
Old C codebase logging gets automated modernisation using a clang-tidy check that converts non-macro printf-style calls first to fmt::printf to fmt::print to… | ||
| Fix your hardest bugs with ease with Time Travel Debugging - Session Interview With Greg Law | Greg Law | 11m |
Claims a record-and-replay engine that records real runs and lets users rewind to any executed line and inspect variables, memory and registers, not a GDB… | ||
| Talk Preview - The Surprising Power of Small Wrapper Classes in C++ | Jørgen Fogh | 01m |
Small wrapper classes claim to reduce duplication and enable isolated testing by encapsulating single responsibilities so modules can be reviewed and run… | ||
| Swarm Intelligence Algorithms - Session Interview With Frances Buontempo | Frances Buontempo | 07m |
Demonstrates a working swarm optimizer that finds optimal XY positions by simulating tens to hundreds of independent agents with position and velocity, each… | ||
| Keynote: Not Getting Lost in Translations - Preview Interview with Daniela Engert | Daniela Engert | 13m |
Built a production ultrasonic inspection machine 15 years ago and now develops an in-house library (about 1–1.5 years old) that keeps compile-time translation… | ||
| C++ Workshop and Keynote Preview with Klaus Iglberger for C++OnSea 2024 | Klaus Iglberger | 07m |
Preview of a workshop and keynote that insist architecture beats feature knowledge and show concrete modern C++ patterns and pitfalls, including how… | ||
| This Is C++ - Exclusive Interview With Jon Kalb ( CppCon Conference Chair ) - C++OnSea 2024 Preview | Jon Kalb | 13m |
Argument centers on C++’s mandate to deliver uncompromised performance by accepting constrained programmer responsibility. Concrete claim: the right way to… | ||
| Workshop Interview - Understanding Object Lifetime For Efficient and Safer C++ | Jason Turner | 12m |
Hands‑on workshop that teaches the concrete rules and gotchas that change code size, safety, and speed: exact object lifetime semantics, when an rvalue… | ||
| Exclusive Interview With Dave Abrahams - Hylo: Generic-programming Language Built on Value Semantics | Dave Abrahams | 21m |
A language built around strict mutable value semantics claims to deliver safety, ease of use, and efficiency while reducing tradeoffs; the project already has… | ||
| Designing and Implementing Safe C++ Applications - Workshop Preview & Interview | Amir Kirsh | 17m |
Covers practical, end-to-end tactics for making C++ applications safer: capturing requirements, architecture and API design, spotting C++-specific pitfalls… | ||
| nothing matches | ||