~/conference

C++ on Sea 2025

date:2025-06-23..2025-06-25
location:Folkestone, United Kingdom
series:C++ on Sea · 7 editions
tags:[c-and-cpp]
titleauthorlength
Lightning Talk: Design by IntuitionTimur Doumler06m
A concrete decision method is presented: state the problem, list requirements, draw an evolution graph, and fill a simple three-option decision table…
Lightning on
Lightning Talk: Shimming OpenSSL Out of NecessityBraden Ganetsky05m
A prebuilt library expects removed symbols so linking fails with an undefined reference to SSL_library_init because that name became a macro in newer OpenSSL…
Lightning on
Lightning Talk: Not Much option() Left - Surviving CMake With Toolchain FilesDamien Buhl07m
CMake option() interacts badly with CMAKE_TOOLCHAIN_FILE: older CMake (around 3.12) reads options inconsistently unless you write cache variables or use FORCE…
Lightning on
Lightning Talk: Clang TSA - A Note about Thread SafetyFlorent Castelli06m
Clang Thread Safety Analysis (TSA) detects missing locks at compile time by reading annotations like GUARDED_BY and function contracts such as acquire/release…
Lightning on
Lightning Talk: To Flush or Not to Flush? - That Is the QuestionRobert Leahy05m
Writes a simple file example that fails against /dev/null and reveals that ofstream destructor flush hides errors, so programs can report success when flush…
Lightning on
Lightning Talk: From Wide to Wrong - Spotting Dangerous Conversions in C++Nico Eichhorn05m
Provides a compile-time hard check that rejects unsafe narrowing when calling functors by wrapping functor parameter types in C++11-compatible wrapper types…
Lightning on
Lightning Talk: It Is a Pipe, but Should It Be? (Sorry Magritte)Björn Fahller05m
Implements a right-curry template and an ary type that binds arguments from the right so partial application takes the trailing parameters, then adds a pipe…
Lightning on
Lightning Talk: Naming is Hard - A Field StudyTina Ulbrich04m
Company inspects oil and gas pipelines and stores up to terabyte per inspection of sensor data to locate defects called features; processing uses a custom…
Lightning on
Lightning Talk: Terminating Your Bugs With Time Travel and AIRashmi Khetan05m
Demo shows an extension that pipes an explain command into Undo’s deterministic time-travel debugging session and queries Claude (AI) to interpret debugger…
Lightning on
Lightning Talk: Teaching the NES - What 6502 Assembly Reveals About Modern C++Tom Tesch06m
Teaching NES games in 6502 assembly forces students to see what compilers and C++ actually hide: no types, just pointers, memory and a PPU GPU. Students build…
Lightning on
Lightning Talk: Pólya Performance ThinkingAndrew Drakeford06m
Apply Polya’s four steps to real performance tradeoffs: understand and restate the context (requirements, data, unknown final design), then devise a plan using…
Lightning on
Lightning Talk: Simple Compile Time Dynamic ProgrammingAndrew Drakeford05m
Uses constexpr functions with plain arrays and loops to run bottom-up dynamic programming at compile time, building a DP cost matrix and a split-point matrix…
Lightning on
Lightning Talk: How to Cook Your CPU with C++Conor Spilsbury05m
A change in compiler optimization from -O0 vs -O2 turns a benign spin-check into an infinite loop that pins a core at 100% CPU after a rebuild, because the…
Lightning on
Lightning Talk: A Compiler Optimization and the 2-Adic NumbersCassio Neri06m
Shows a concrete algorithm that computes reciprocals via a Newton half-iteration that contains no division, implements two concrete code paths (double for 1/3…
Lightning on
Lightning Talk: Let’s Make VLD Great AgainAlex Vanden Abeele05m
Visual Leak Detector is resurrected: fork updated from the old 2.59/MS fork (which officially only supports up to VS2015 and only unofficially runs on 2019) to…
Lightning on
Lightning Talk: Teaching GameDev - A C++ Centric ApproachKoen Samyn06m
Howest Game Development program uses C++ as the core language and starts from basics because enrollment is open to any high‑school graduate, teaching…
Lightning on
Lightning Talk: Dying for Your Language - History of EsperantoGuy Davidson06m
Esperanto is a constructed international auxiliary language created by Zamenhof in 1887 and today counts about 2,000 native speakers and ~100,000 total…
Lightning on
A Recipe for Designing Your Work Week as a Software EngineerSandor Dargo05m
Create a spreadsheet table with column headers for each responsibility (reporting, telemetry, meetings, learning, mentoring, buffer), assign concrete hours or…
Talk on
Lightning Talk: GPU Programming with C++ and TritonGil Hoben05m
Proposes using Triton Python DSL to write GPU kernels that compile to a CUDA binary loaded from C++, showing a position-update kernel for agent based…
Lightning on
Lightning Talk: Conan Strikes Back - Easy Migration to Conan 2.0Evgenii Seliverstov06m
Conan 2.0 migration requires concrete edits: replace conanfile.txt and old recipe syntax, switch to the new generators/toolchain flow (move from legacy make…
Lightning on
Lightning Talk: Start a User Group, in 5 Easy* StepsRobert Schimkowitsch05m
Practical five-step recipe: recruit local allies, secure a free or cheap venue (university, library, hackerspace), plan a low-pressure first meetup focused on…
Lightning on
Why Technical Engineering Interviews Are Broken and How to Actually Make Them BetterKristen Shaker01h 03m
Current interviews rely on banks of practiced problems, rigid rubrics and AI‑assisted cheating (LeetCode, Advent of Code style questions and startups that…
Talk on
What C++ Needs to be SafeJohn Lakos01h 28m
Bloomberg shows a concrete roadmap: macrobased contracts in production since 2004 (open sourced 2012), funded clang prototypes and library work to land…
Talk on
Teaching an Old Dog New Tricks - A Tale of Two EmulatorsMatt Godbolt59m
Implements the original ZX Spectrum twice: a straightforward C++11 emulator (~3,000 LOC, instruction decoder and codegen) and a modern C++ version that uses…
Talk on
C++, C#, Rust or Python - Which is the Best Choice for Low Energy Consumption?Tina Ulbrich, Hendrik Niemeyer49m
Reproduces benchmarks for Monte Carlo pi with 10 million samples and an Adler‑32 checksum on 50 MB, measures energy via Code Carbon (RAPL/Intel PCM fallback)…
Talk on
std::generator in C++23: When to use, and how to improve itJohannes Kalmbach57m
std::generator is type‑erased, allocates heap storage and shows measurable overhead vs inlinable code: a tiny two‑yield generator allocates 96 bytes on GCC and…
Talk on
Rust Traits In C++Eduardo Madrid58m
Shows a concrete path to get Rust Traits–style runtime polymorphism in C++ by building custom virtual table structures and concrete value managers inside a…
Talk on
Understanding Large and Unfamiliar CodebasesMike Shah, Chris Croft-White58m
Large legacy repo (examples: over 1,000,000 lines overall, OpenTTD ~300k C/C++ lines) gets explored by running and attaching debuggers, sampling profilers and…
Talk on
Will Your C++ Program Still Be Correct Next Year?Björn Fahller56m
A practical testing philosophy that treats tests as executable requirements, not just examples: a word-histogram example reveals real bugs, fixes, and design…
Talk on
Faster, Safer, Better RangesTristan Brindle59m
C++ ranges often lose performance and can be unsafe; this describes a concrete alternative: Flux v2 implements an internal-iteration-first model with resumable…
Talk on
Telling Your Technical StorySherry Sontag45m
Advice centers on concrete practices: reviewers blind proposals with use Speakerfish to blind-review proposals so selection favors a clear point of view; draft…
Talk on
C++ Performance Tips - Cutting Down on Unnecessary ObjectsPrithvi Okade, Kathleen Baker52m
Extra temporaries cost CPU and heap: examples show a copy of std::string or std::vector causing two heap allocations vs one when moved or constructed in place…
Talk on
Extending std::execution Further - Higher-Order Senders and the Shape of Asynchronous ProgramsRobert Leahy50m
Shows how std::execution in C++26 implements higher-order senders by building two concrete algorithms: branch and repeat. Delivers operation-state classes, a…
Talk on
Don’t Get Overloaded by C++ Overload SetsRoth Michaels01h 05m
Covers concrete overload-resolution mechanics: name lookup picks one scope then overload resolution ranks exact match, promotions before conversions…
Talk on
Beyond Sequential Consistency - Leveraging Atomics for Fun & ProfitChristopher Fretz01h 22m
C++ atomics are measured end-to-end on a lock‑free ring buffer: default sequentially consistent code hits about 10M ops/s on an Intel Xeon, switching to…
Talk on
Smart Pointers in C++Khushboo Verma53m
Covers concrete failure modes and fixes: using ptr.get on a unique_ptr produces a double delete when ownership isn’t transferred; unique_ptr<T[]> or…
Talk on
Rethink Polymorphism in C++Nicolai M. Josuttis01h 23m
Argues that runtime inheritance plus heap pointers is error-prone and slow, and demonstrates alternatives using std::variant, variadic templates and move…
Talk on
Contracts in C++26 - An Insider's OverviewAndrei Zissu01h 02m
After two decades of work the Contracts MVP is confirmed for C++26 (P2900 with rationale P2899) and specifies concrete syntax like pre(...) for preconditions…
Talk on
The Power and Pain of Hidden Symbols in C++ ProgrammingJason Turner01h 00m
Claim: making symbols -fvisibility=hidden by default and exporting only the intended API, then enabling link-time optimization, shrinks and speeds real C++…
Talk on
C++ Variadic Templates and Parameter PacksVladimir Vishnevskii53m
Refresher on using C++ variadic templates and parameter packs with concrete examples: a tuple-backed container implemented by expanding packs into template and…
Talk on
Cost of Abstractions in Embedded SystemsMarcell Juhasz54m
Detailed case studies target an STM32 microcontroller, cross-compiled with GCC -Os and RTTI disabled, measuring binary size and loop iterations on hardware…
Talk on
Contracts, Safety, and the Art of Cat HerdingTimur Doumler01h 30m
C++26 adds language contract assertions with four evaluation semantics (ignore, observe, enforce, quick enforce) and the proposal P3100 catalogs 90 cases of UB…
Talk on
What Can C++ Learn About Thread Safety From Other Languages?David Rowland55m
Argues C++ can borrow Rust/Swift ideas by adding send/sync traits and using C++26 reflection and metaclass generation to wrap types into synchronized_value…
Talk on
Re-Release: Missing (and future?) C++ Range ConceptsJonathan Müller01h 09m
Describes concrete new range concepts implemented in a think‑cell library (C++23 subset, using some C++26 conveniences): reserve_hint / approximately sized…
Talk on
Mind the Gap (Between Your Code and Your Toolchain)Yannic Staudt16m
Linkers hit a ~2 GB default limit for huge debug info and the practical fix is to emit split debug symbols (.dwo) which shrinks the binary to about 10–15%…
Talk on
Missing (and future?) C++ Range ConceptsJonathan Müller01h 09m
Range concepts and library changes that enable real optimizations and compile-time metaprogramming: adds approximate-sized ranges/reserve_hint to propagate…
Talk on
Safe and Readable Code - Monadic Operations in C++23Robert Schimkowitsch01h 10m
Shows how C++20/23 monadic operations make code clearer by using std::views::transform and std::views::join, returning errors with std::optional or…
Talk on
The 10 Essential Features for the Future of C++ LibrariesMateusz Pusz01h 32m
Talk lists 18 features (shifted up from the planned 10) and shows concrete changes using a quantities and units library as a running example. It demonstrates…
Talk on
To Err is Human - Robust Error Handling in C++26Sebastian Theophil45m
C++23 and C++26 additions get used: std::expected for return-value error flow, contracts for configurable pre/post checks, and library hardening to turn STL…
Talk on
Welcome to v1.0 of the meta::[[verse]]!Inbal Levi01h 04m
Proposal P2996 is effectively accepted and introduces P2996 voted into C++26 draft enabling static compile-time reflection via a lift operator, splicers, a…
Talk on
Software Engineering Completeness - Knowing When You Are Done and Why It MattersPeter Muldoon01h 29m
A practical framework called the Software Engineering Completeness Pyramid lays out concrete criteria for “done”: code meets acceptance criteria with dates…
Talk on
CMake for the ImpatientSteve Love54m
Shows a working minimal CMakeLists.txt that builds main.cpp into world.exe using real commands cmake -B bin then cmake --build bin, and demonstrates generator…
Talk on
An Introduction to Reinforcement Learning - Snake Your Way out of a Paper BagFrances Buontempo53m
Implements tabular Q‑learning in C++ (std::vector, std::deque, std::map) starting on a 1D five‑cell line then a 2D grid, using epsilon‑greedy (epsilon=0.1)…
Talk on
Understanding C++ Value Categories: lvalue, rvalue, xvalue, std::move, std::forward & Best PracticesMantrala Sandeep01h 02m
Clear, example-driven breakdown of why C++ has five value categories (lvalue, xvalue, prvalue, glvalue, rvalue), how rvalue references plus std::move enable…
Talk on
The Pattern Matching We Already HaveBraden Ganetsky58m
Argues that C++ already has real pattern matching: concrete mechanisms are overload resolution, partial/explicit template specializations, template argument…
Talk on
Building Robust Inter-Process Queues in C++Jody Hagins01h 07m
Examines two popular SPSC queues (Daugaard, Rigtorp) and shows that simply mmap-ing them breaks: std::atomic is not an implicit-lifetime type in C++20…
Talk on
Namespaces 101Sandor Dargo01h 16m
Covers namespace syntax and evolution with dates: C++98 namespaces, C++11 inline namespaces, C++17 nested namespace openings and C++20 nested inline openings…
Talk on
Three Cool Things in C++26: Safety, Reflection & std::executionHerb Sutter01h 11m
C++26 makes three concrete shifts: it defines erroneous behavior so uninitialized local variables either terminate or get detected by default with an opt‑in…
Talk on
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.