~/conference

CppCon 2018

C++ developers, library authors, toolchain engineers, build engineers, systems programmers, QA and test engineers, technical writers

C++17 std::optional; std::basic_string as container; copy elision and RVO; trivially relocatable types; constexpr and operator overloading; chrono library evolution; Clang on Windows toolchain; PyTorch C++ frontend; task-based parallelism (Cpp-Taskflow); Qt signals and Coroutines TS; practical std::recursive_directory_iterator; conan C++ package management

titleauthorlength
Can I has grammar?Timur Doumler07m
Reads the C++ standard grammar (about 20 pages) and shows concrete, compile-tested corner cases: extern nesting ambiguity that different compilers accept or…
Talk on
Machine Learning in C++ with PyTorchPeter Goldsborough04m
PyTorch gains a native C++ Frontend built on the same C++ backend with tensors, CUDA support and automatic differentiation, so C++ code mirrors Python…
Talk on
You're Not as Smart as You Think You ArePhil Nash07m
Claims that human cognition has strict limits: an inattentional blindness demo where roughly half miss a gorilla even though there are 16 passes, a…
Talk on
Copy ElisionJon Kalb05m
Explains the concrete claim that compilers generally construct return objects in caller storage so copies are elided, using low‑level stack‑frame diagrams and…
Talk on
This is Why We Can’t Have Nice ThingsJon Kalb05m
Argument: adopt east const so declarations read consistently: const applies to what's on its left. Evidence: examples show pointer-to-function…
Talk on
std::basic_string: for more than just textBrian Ruth05m
Claims that std::basic_string is a general-purpose contiguous container, not just text, and shows using it for bits, named bit directions, and aggregating…
Talk on
Almost Always Avoiding autoStaffan Tjernstrom05m
Claims that using auto everywhere causes debugging pain and surprising types, demonstrates with real debugging scenarios: chasing excessive return-value chains…
Talk on
Let's learn programming by inventing itÓlafur Waage05m
Clear claim: programming can be learned by inventing features and using Iterative Learning rather than memorizing language lore. Evidence: a walk through K&R…
Talk on
The Shape of a ProgramJames McNellis05m
Argues that complexity is usefully measured by the area under the indentation and demonstrates concrete refactorings that reduce it: invert nested ifs into…
Talk on
Fast Parallel Programming using Modern C++Tsung-Wei Huang05m
Claims a concrete library: header-only C++ library Cpp-Taskflow that expresses task graphs, schedules work and hides threads and locks. Demonstrates a…
Talk on
std::optionalSimon Brand01m
A 20 or 30 second lightning talk demonstrates that adding a monads‑style interface simplifies handling a present or absent value in std::optional. The demo…
Talk on
Clang on Windows: It's a ThingZach Turner05m
Demonstrates that clang-cl and lld-link run as native Linux programs, producing PE32+ executables, COFF objects, and MSVC PDBs that match md5sums for build…
Talk on
Thank You (I’m sorry that it’s taken me so long to say it)Walter E. Brown13m
A brief, personal thank-you that names mentors and recalls concrete moments: learning GOTRAN and the era of 1800 punch cards per compile, a teacher who…
Talk on
Trivially RelocatableArthur O'Dwyer08m
Argument: certain types can be treated as bitwise-movable so relocation becomes a single memcpy instead of move-then-destroy loops. Demonstration: compiler…
Talk on
Cache Warming: Warm Up The CodeJonathan Keinan05m
Claim: pre-executing rarely used hot paths reduces latency but naive warming pollutes caches and skews branch predictors. Demo uses synthetic calls at ~10 Hz…
Talk on
The Bad Big Wolf Meets Riding Hood Little RedBorislav Stanimirov06m
Claim: natural adjective order predicts readability and const int vs int const placement in C++. Uses the explicit acronym GSSSACPM (general opinion specific…
Talk on
How to create slides about CMake with CMake?Mateusz Pusz04m
A CMake-based workflow produces slide decks and verifies embedded code; a reusable library builds over 1000 slides organized into chapters, keeps content…
Talk on
Workflow hacks for developersAnny Gakhokidze04m
Trello becomes a lightweight tracker with Trello backlog/paused/testing/blocked lists that separate work in progress from things sent for 3–9 hour remote…
Talk on
Curly Function Call SyntaxTony Wasserka05m
Claim: replace parentheses with braces for function calls by wrapping the call in a class whose constructor forwards arguments. Tool: a small CurlyCall wrapper…
Talk on
Fixing Two-Phase InitializationAndreas Weis05m
Claims a concrete idiom: a preconstruct member function that does all fallible work and returns a construction token carrying the initialized state, then a…
Talk on
Dangling in French and EnglishMark Elendt04m
Code demonstrates that taking a char from string::c_str() inside a std::vector then push_backing more elements can either be safe or crash depending on small…
Talk on
<chrono> Then and NowHoward Hinnant03m
Chronology support in C++ moves from algebraic durations and time_points to concrete calendar and zone features: C++20 adds durations for days weeks months…
Talk on
[Boost].DI - Inject all the things!Kris Jusiak05m
Claims a small generated header library called [BOOST].DI that is not part of Boost and requires no STL, able to deduce constructors and inject by value…
Talk on
Forwarding Values... and Backwarding Them Too?Ezra Chung05m
Claims a concrete fix for the “backwarding” problem: preserve lvalue, xvalue and prvalue results from a deep caller back to the call site by using…
Talk on
The perfect job interview (well, maybe)Nimrod Sapir05m
Eight concrete hiring habits that change outcomes not buzzwords or examples The interviewer makes interviews a learning opportunity and will even suggest the…
Talk on
Wise Enum: A C++ Smart Enum For All Your Reflective Enum NeedsNir Friedman05m
A tiny C++ library called Wise Enum claims to give real enums to-string/from-string with std::optional, iteration via wise_enum::range, and compile-time…
Talk on
Generating UI with C++, boost & QtJens Weller05m
Prototype generates Qt UI from C++ types instead of hand wiring controls: uses Verdigris to avoid moc, inspects Boost.Fusion ADAPT_STRUCT and iterates with…
Talk on
Qt Signals and the Coroutines TSJeff Trull05m
Claim: Qt signals become awaitables so sequencing needs no ad hoc state. Implementation uses the Coroutines TS plus metaprogramming to produce either void, a…
Talk on
Especially nasty bug in our network scannerMartin Šmarda05m
Avast’s network scanner fails to probe MQTT devices because a supposed binary MQTT CONNECT header is assembled from a C++ string literal that contains a UTF-8…
Talk on
Constexpr and operator overloading: Why everything is terribleCJ Johnson04m
Implements an optional backport for C++11 that breaks when stored T overloads operator&; using plain & on unioned storage triggers wrong codegen…
Talk on
Why not Conan (part III)?Diego Rodriguez-Losada04m
Five quick claims: Conan feels too complex and nondeclarative, arguing for scripting hacks instead of clear recipes; company policy favoring source builds over…
Talk on
Communicating via Diagnostics: Observations and Tips for AuthorsWalter E. Brown07m
Diagnostics matter: state the violated contract, the actual value and the valid range, and give a clear corrective step; call out precondition failures and…
Talk on
Set it and forget it!Matthew von Arx05m
A 400,000 line SVN codebase spanning 40 CMake projects becomes a reproducible pipeline: convert history to Git, host on GitLab, centralize builds with Jenkins…
Talk on
SG14: CppCon ReportJohn McFarlane05m
SG14 meets face to face and digs into specific proposals: object relocation via memcpy where allowed, a smart pointer for external reference counts aimed at…
Talk on
Zero-Overhead Compiler PessimizationChuck Wilcox04m
Shows that simple microbenchmarks vanish under optimization: the optimizer removes the increment and leaves only timing calls unless the code forces observable…
Talk on
Talk to me! The art of reporting a bug (and handling the feedback)Anastasia Kazakova08m
Concrete rules and concrete failures: provide a repeatable sample and exact steps, try the compiler and debugger as standalone tools, attach logs and list…
Talk on
Wandbox: Online programming language testing environmentTakatoshi Kondo05m
Wandbox is an online language testing environment that runs multiple compilers and toolchains and actually executes code. It supports multiple compilers…
Talk on
What Bug Hunting Taught Me About Hunting BugsAdi Shacham Shavit04m
Three concrete debugging rules map to field entomology: avoid touching live systems by using simulations and passive observation, instrument with an…
Talk on
Test coverageArvid Norberg03m
Argues that test coverage must be honest: count only the functions a test actually verifies and exclude test code, frameworks, helpers and mocks, otherwise the…
Talk on
docs.microsoft.com Needs You!Colin Robertson05m
Content lives on docs.microsoft.com as Markdown hosted on GitHub, each page showing an edit button and issue links so mistakes get fixed by forking, committing…
Talk on
Feedback on practical use of C++17 std::recursive_directory_iteratorNoel Tchidjo04m
Implements API patches on gcc and clang that add a lambda filter and a regex filter to std::recursive_directory_iterator, runs filesystem benchmarks over…
Talk on
SG14: The Story So FarJohn McFarlane05m
Study Group 14 organizes regular teleconferences and face‑to‑face meetings to reconcile committee work with needs from game development high‑frequency trading…
Talk on
rof_egnar reversed adapter for(auto x:reversed(range))Peter Sommerlad05m
Describes a reversible range-for adapter that initially keeps references and therefore uses-after-free when fed temporaries; testing counts constructions and…
Talk on
“Concepts: The Future of Generic Programming (the future is here)”Bjarne Stroustrup01h 39m
Concepts are now usable, implemented in GCC and Clang and slated for C++20, and they let templates be constrained by readable predicates rather than fragile…
Talk on
“Patterns and Techniques Used in the Houdini 3D Graphics Application ”Mark Elendt01h 27m
Houdini runs on decades-old C++ with a custom low‑level library stack, a node‑based procedural engine, and GPU kernels via OpenCL; engineers build…
Talk on
“Simplicity: Not Just For Beginners”Kate Gregory01h 29m
Argues that code should explain itself and gives concrete tactics: use RAII to eliminate missed cleanup bugs, prefer templates/encapsulation over copy‑paste to…
Talk on
“Thoughts on a more powerful and simpler C++ (5 of N)”Herb Sutter01h 39m
Argues two concrete efforts: a Lifetime profile that statically diagnoses common dangling cases (string_view, iterators, raw pointers) with a released 1.0 spec…
Talk on
“State Machines Battlefield - Naive vs STL vs Boost”Kris Jusiak01h 00m
Benchmarks compare naive if/else and switch (about 64 lines of code, very well inlined) versus object‑oriented vtable approach (about 220 lines of generated…
Talk on
“Spectre: Secrets, Side-Channels, Sandboxes, and Security”Chandler Carruth01h 28m
Speculative execution lets transient instructions touch secrets and encode them in a cache-timing side channel; a live demo shows out-of-bounds speculative…
Talk on
“Closing Panel: Spectre”Matt Miller, Chandler Carruth43m
Discussion covers concrete mitigations, tradeoffs and timelines: OS fixes and microcode updates (IBRS/IBPB), firmware interfaces on ARM, and compiler/runtime…
Talk on
“Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)”G. Nishanov01h 04m
Shows that using nano-coroutines built on Coroutines TS (MSVC and Clang implementations) turns random-memory join lookups into an interleaved prefetch…
Talk on
"Compiling Multi-Million Line C++ Code Bases Effortlessly with the Meson Build System"Jussi Pakkanen34m
Meson is a Python-based build system that claims practical scalability to Chromium-sized, multi-million-line C++ code bases while staying snappy: a simple…
Talk on
“A Little Order: Delving into the STL sorting algorithms”Fred Tingaud27m
Benchmarks on Quick‑Bench and local compilers show finding the median of a 1,000,000 element vector with std::nth_element plus std::sort is three times faster…
Talk on
“Compile-time programming and reflection in C++20 and beyond”Louis Dionne01h 09m
Roadmap for C++ compile-time programming: C++20 expands constexpr to allow allocation in constexpr, limited try/catch and virtual calls plus promotion of…
Talk on
“These Aren't the COM Objects You're Looking For”Victor Ciura01h 00m
Windows COM is 25 years old but using C++17 plus the C++/WinRT projection radically shrinks boilerplate and beats handwritten ABI code in size and speed…
Talk on
“Ensuring Exception Safety Through Testing"Jon Cohen58m
Describes a concrete testing system that uses a global counter to deterministically throw the nth exception, an error-tracker to catch internally handled…
Talk on
“Easy::Jit: A Just-in-Time compilation library for C++”Juan Manuel Martinez Caamaño26m
A C++ library that exposes runtime specialization by embedding LLVM bitcode via a clang optimizer plugin and exposing a single header easy::jit.h; it…
Talk on
“CUDA Kernels with C++”Michael Gopshtein54m
Shows concrete C++ applied to CUDA: template kernels replace duplicated int/float kernels, and type-safe DevicePtr vs raw pointers prevents host/device pointer…
Talk on
“Fast Conversion From UTF-8 with C++, DFAs, and SSE Intrinsics”Bob Steagall01h 10m
A DFA-based converter that uses three lookup tables and simple C++ code converts UTF-8 to UTF-32 while decoding, not as two steps, and uses SSE2 intrinsics to…
Talk on
“Sane and Safe C++ Classes”Peter Sommerlad01h 04m
Categorizes C++ types into value, empty, managing, pointing and polymorphic classes and gives concrete rules for special member functions and ownership…
Talk on
"UEFI Applications With Modern C++"Morris Hafner30m
UEFI applications compile with a lightweight toolchain using efilib, MinGW GCC and linker flags to produce COFF EFI binaries run under OVMF/QEMU. The talk…
Talk on
“Source Instrumentation for Monitoring C++ in Production”Steven Simpson01h 00m
Advocates adding source instrumentation into production builds so logs become structured logging rather than human-only text, emitting traces on operation end…
Talk on
“Safe Numerics”Robert Ramey01h 05m
Boost.SafeNumerics uses operator overloading and template metaprogramming to make integers that either trap at compile time or throw at runtime, with…
Talk on
“Avoiding Disasters with Strongly Typed C++”Arno Lepisk41m
C++ typedefs only alias types; using tiny wrapper structs and templates produces NamedType and type_safe style strong types that the compiler enforces…
Talk on
“Understanding Optimizers: Helping the Compiler Help You”Nir Friedman01h 04m
Explains why compilers inline and when they won’t, with concrete examples: std::sort often turns a function pointer call into an indirect call but wrapping the…
Talk on
“What to Expect from a Next-Generation C++ Build System”Boris Kolpackov01h 02m
Argues for a native, C++-extensible build system and demonstrates build2 doing it: a mostly declarative language, uniform model, and concrete features —…
Talk on
“What Do We Mean When We Say Nothing At All?”Kate Gregory01h 01m
Covers concrete ways silence in C++ communicates intent: use C++17 attributes like [[fallthrough]] to mark intentional switch fallthrough, [[maybe_unused]] to…
Talk on
“Latest and Greatest in the Visual Studio Family for C++ Developers 2018”Steve Carroll, Marian Luparu01h 00m
Visual Studio 2017/15.x now targets Windows and Linux from one IDE: open folder with CMake toolchain integration, Remote Headers IntelliSense via rsync, and…
Talk on
“Regular Types and Why Do I Care ?”Victor Ciura52m
Explains why STL expects value-like types, shows std::sort actually requires a strict weak ordering (example: a naive 2D point comparator yields unordered…
Talk on
“Don't package your libraries, write packagable libraries!”Robert Schumacher33m
Lessons from packaging over 700+ libraries in vcpkg: prefer mainstream buildsystems (CMake/MSBuild), honor CMake defaults like BUILD_SHARED_LIBS, avoid bespoke…
Talk on
“Parsing C++”Timur Doumler, Dmitry Kozhevnikov53m
C++ parsing requires semantic name lookup and often arbitrary lookahead so parsers must perform type lookup, evaluate constexprs and handle template-dependent…
Talk on
“What Could Possibly Go Wrong?: A Tale of Expectations and Exceptions”Brand, Nash01h 03m
Conference session compares concrete error-handling techniques and shows which actually trade safety, speed and clarity: benchmarks claim table-based…
Talk on
“Modern C++ in Embedded Systems - The Saga Continues”Michael Caisse01h 09m
Argues that contemporary C++ compiles and debugs cleanly on bare‑metal Renesas hardware and was used to build brushless‑motor controllers for a…
Talk on
“Operator Overloading: History, Principles and Practice”Ben Deane01h 02m
History and concrete rules for operator overloading, with C++17 fold expressions and the new C++20 three-way (spaceship) comparison, showing where it generates…
Talk on
“105 STL Algorithms in Less Than an Hour”Jonathan Boccara58m
Covers all 105 algorithms in the STL as of C++17 and groups them into logical regions on a map; demonstrates concrete calls like std::make_heap / push_heap /…
Talk
“Pessimistic Programming”Patrice Roy52m
Benchmarks of a million iterations show exceptions for rare errors can be as fast as optionals in the common case but catastrophically slower in the worst…
Talk
“Datum: A Compact Bitwise Copyable Variant Type”Rishi Wani26m
Datum is an eight byte compact variant on 32-bit that uses NaN-boxing of IEEE-754 doubles to represent regular doubles natively and repurpose NaN payload space…
Talk
“Making New Friends”Dan Saks01h 02m
Shows a concrete technique: put non-member operator definitions inside a class template as friend functions so each instantiation manufactures its own friend…
Talk
“Save $$ Testing Code the Playback-Based Way”William Clements29m
Advocates recording every API call, arguments and return values into JSON artifacts and replaying them against the library to catch breaking changes; a…
Talk on
“Debugging Linux C++”Greg Law58m
Demos show specific Linux C++ techniques: GDB reverse debugging (process record) and dynamic printf plus Python scripting to call inferiors, set…
Talk on
“The Landscape and Exciting New Future of Safe Reclamation for High Performance”Paul McKenney, Maged Michael58m
Concurrency TS2 defines concrete APIs: rcu_obj_base with rcu_reader and rcu_synchronize / rcu_barrier for retire-or-wait semantics, and a hazard pointer API…
Talk on
“Enough string_view to Hang Ourselves”Victor Ciura01h 02m
Argues that std::string_view is a useful zero-copy glue for mixed string APIs but repeatedly causes real bugs: dangling references from storing views, a…
Talk on
“How to Teach C++ and Influence a Generation”Christopher Di Bella59m
Argues for concrete teaching moves: start with five types (one integer, one real, string, char, bool) and add vector and scoped enums for practical beginners…
Talk on
“C++ Dependency Management: from Package Consumption to Project Development”Boris Kolpackov01h 03m
Demonstrates build2 by building a portable UUID library and executable using concrete commands: bdep new, bdep init, bdep update, then CI with bdep ci and…
Talk on
“The C++ Execution Model”Bryce Adelstein Lelbach56m
C++ defines an abstract machine of threads evaluating code in a flat storage space, not modeling caches or NUMA; memory_order_consume is ignored here. Rules…
Talk on
“Concepts and Contracts: When, What, and How”Michael Price01h 01m
Goal: implement a library function template that accepts exactly one positive integral parameter and rejects zero, negatives, chars, bools, non-integers, and…
Talk on
“Range-Based Text Formatting For a Future Range-Based Standard Library”Arno Schoedl56m
think-cell implements a range-based formatter that treats values as lazily generated character ranges, adds an internal iteration model plus customization…
Talk on
“How to Write Well-Behaved Value Wrappers”Simon Brand53m
Shows how implementing wrappers like std::optional or pair actually breaks or costs performance: missing noexcept makes std::vector turn moves into copies…
Talk
“High-Radix Concurrent C++”Olivier Giroux56m
Demonstrates a C++ radix-26 trie using atomic counts and atomic pointers with a test‑and‑set insertion that yields a starvation-free algorithm, ports to CUDA…
Talk on
“How C++ Debuggers Work”Simon Brand01h 01m
Covers how Linux x86_64 debuggers inspect ELF and DWARF to map source to addresses, uses ptrace + int3 to implement software breakpoints by replacing a byte…
Talk on
“Secure Coding Best Practices: Your First Line Is The Last Line Of Defense (1 of 2)”Matthew Butler01h 00m
Walks through concrete C/C++ mistakes (unsafe strncpy use, unchecked std::string lengths, std::copy heap overflow, dangerous cast to enums) and shows a live…
Talk on
“Secure Coding Best Practices: Your First Line Is The Last Line Of Defense (2 of 2)”Matthew Butler01h 03m
Static analyzers like CppCheck and Clang‑Tidy catch correctness issues but miss many security flaws; security scanners such as Coverity, Sonar, PVS Studio…
Talk on
“Contract Programming in C++(20) (part 1 of 2)”Alisdair Meredith01h 03m
Defines contracts as explicit preconditions/postconditions/invariants, explains the C++ standard’s 1,500‑page contract promise and undefined behavior…
Talk on
“Contract Programming in C++(20) (part 2 of 2)”Alisdair Meredith01h 05m
C++20 adds concrete contract features: expects/ensures/assert attributes attach pre/postconditions and inline checks; attributes parse always and have three…
Talk on
Crafting EDSL In C++ using Metaprogramming, Operator Overloading, & Lambda ExpressionsGilang Hamidy01h 02m
Builds a runtime EDSL in C++ that implements an asynchronous block for Tizen apps using only C++ features: template metaprogramming, operator overloading…
Talk on
“Modern C++ Testing with Catch2”Phil Nash55m
Catch2 rebases Catch on C++11 only, ships as a single-header with CATCH_CONFIG_MAIN or CATCH_CONFIG_RUNNER, and gives expression‑template assertions…
Talk on
“Modern C++ Design (part 1 of 2)”Titus Winters01h 02m
Argues that the real atom of C++ API design is the overload set and that copy vs move should be treated as that overload set (move as an optimization of copy)…
Talk on
“A Semi Compile/Run-time Map with (Nearly) Zero Overhead Lookup”Fabian Renn Giles25m
A semi compile-/run-time associative map stores where values live at compile-time using a templated global and constexpr lambda keys, then uses static local…
Talk on
“Open is Good - yomm2: Fast, Orthogonal Open Methods”Jean-Louis Leroy32m
Library yomm2 implements open multi-methods as free functions that add polymorphic behavior to existing class hierarchies without modifying them, supporting…
Talk on
“What's new in Visual Studio Code for C++ development”Rong Lu31m
Visual Studio Code adds concrete C++ features: out‑of‑box IntelliSense for workspace headers, recursive includePath (glob search) and compilerPath…
Talk on
“Multi-Precision Arithmetic for Cryptology in C++, at Run-Time and at Compile-Time”Niek J. Bouman31m
A new C++17 header-only library (ctbignum, Apache‑2, GitHub) provides compile-time big-integer computations for 100–500 bit operands and uses…
Talk on
“C++ in Elvenland”Serge Guelton59m
Walks a compiled C++ binary from ELF header through sections and symbols, and shows live demos with objdump and readelf and using objcopy embedding to pack…
Talk on
“Using Compile-time Code Generation to build an LLVM IR Pattern Matcher”Pablo Halpern01h 00m
A C++11 library that encodes LLVM IR match patterns as constexpr expression templates and operator-overloaded syntax produces a specialized pattern-matcher at…
Talk on
Better Tools in Your Clang ToolboxVictor Ciura01h 01m
An open‑source Visual Studio extension Clang Power Tools brings clang‑tidy, clang‑format and LLVM compilation into MSVC workflows and a PowerShell CI script…
Talk on
Writing Standard Library Compliant Data Structures and AlgorithmsMarc Gregoire01h 02m
Starts by implementing a simple find_all iterator-based algorithm that moves from a vector-only API to one taking input and output iterators, returns the…
Talk on
OOP Is Dead, Long Live Data-oriented DesignStoyan Nikolov01h 01m
Compares Chromium’s object-oriented animation path (6+ inheritance layers, virtual interpolation, per-animation heap objects) to a data-first redesign used in…
Talk on
Concepts As She Is SpokeArthur O'Dwyer01h 07m
Clear-eyed tour of C++2a Concepts syntax and semantics, with concrete compiler status (GCC supports the Concepts TS via -fconcepts, Clang has a fork, MSVC…
Talk on
C++ Function Templates: How Do They Really Work?Walter E. Brown01h 00m
Claim: function templates are blueprints not functions, compilers synthesize signatures and instantiate definitions only as needed from calls. Crucial…
Talk on
An Allocator is a Handle to a HeapArthur O'Dwyer01h 03m
Claim: an allocator is not a heap but a cheap handle to a heap: std::pmr::polymorphic_allocator holds a pointer to a std::pmr::memory_resource and copying the…
Talk on
Touring the Tips of the Week SeriesJon Cohen, Matt Kulukundis20m
Overview of the C++ Tip of the Week series with concrete rules: copies vs moves follow a name-counting rule (one name → move, two names → copy), prefer value…
Talk on
The Nightmare of Initialization in C++Nicolai Josuttis01h 00m
Claims that there are 19 ways to initialize an int and shows real breakage: copy vs direct vs brace vs auto+brace produce different types and overload…
Talk on
Surprises in Object LifetimeJason Turner01h 01m
Concrete surprises: implicit wrappers like reference_wrapper and string_view produce dangling references with no compiler warnings, returning or binding to…
Talk on
user-defined statically-checked call graph constraints in C++Andrew Nelson27m
A static analyzer called Funqual parses C++17 with libClang, builds a whole-program call graph, and enforces user-written rules like restrict_indirect_call. It…
Talk on
Frozen data structures in C++14Serge Guelton58m
Frozen provides header-only replacements for map/set/unordered_map/unordered_set that are truly immutable and constructed at compile time via constexpr…
Talk on
Git, CMake, Conan - How to ship and reuse our C++ projectsMateusz Pusz01h 01m
Compares concrete CMake patterns and Conan commands for reproducible C++ packaging: shows how modern CMake targets and generator expressions avoid header/flag…
Talk on
Overloading: The Bane of All Higher-Order FunctionsSimon Brand22m
Explains why passing overloaded functions or function templates into higher‑order code fails and shows concrete workarounds and proposals: function templates…
Talk on
Make It Fixable: Preparing for Security Vulnerability ReportsPatricia Aas29m
Companies must provide a clear contact channel for vulnerability reports and plan to actually deliver fixes: build systems, signing, and a reliable auto-update…
Talk on
Undefined Behavior is Not an ErrorBarbara Geller, Ansel Sermersheim57m
Core claim: undefined behavior is not an error — the compiler may legally treat UB as “code not present,” leading to surprising results. Real examples: a…
Talk on
Unwinding the Stack: Exploring How C++ Exceptions Work on WindowsJames McNellis01h 06m
Shows exactly how Visual C++ turns throw into a structured exception: the runtime calls CxxThrowException with throw info and an exception object, the common…
Talk on
Woes of Scope Guards and Unique_Resource - 5+ years in the makingPeter Sommerlad01h 02m
A generic RAII wrapper (unique_resource) evolves through ~13 papers and nine major revisions, adding CTAD, if constexpr paths and scope guards…
Talk on
Lightweight 2D graphics with io2dGuy Davidson57m
io2d is a lightweight C++ 2D graphics reference implementation that claims cross‑platform builds for Windows, OS X, iOS and Linux and is available on vcpkg; it…
Talk on
Debug C++ Without RunningAnastasiia Kazakova53m
Explains concrete IDE features that reveal hidden C++ code without compiling: step-by-step macro substitution and unwindable typedef expansion in…
Talk on
Emulating the Nintendo 3DS: Generative & Declarative Programming in ActionTony Wasserka57m
Describes a concrete system to auto-generate 3DS IPC serialization: declarative command descriptions (command id + normal/special/request/response tuples)…
Talk on
Expect the expectedAndrei Alexandrescu59m
Proposal and prototype for a discriminated-union error type that unifies local error returns and centralized exceptions by storing either the result or an…
Talk on
DynaMix: A New Take on PolymorphismBorislav Stanimirov01h 00m
A C++ library that composes objects from runtime mixins added/removed at runtime and exposes unicast and multicast messages with message priorities and global…
Talk on
Modern C++ Design (part 2 of 2)Titus Winters58m
Argues concrete rules for parameter passing and type design: when to use rvalue-references, reference-qualified overloads, and how to express maybe move…
Talk on
Return Value Optimization: Harder Than It LooksArthur O'Dwyer27m
Explains where the return slot lives in typical calling conventions, why C++03/C++11/C++17 rules sometimes elide, sometimes move, and sometimes silently copy…
Talk on
Talking to TypelistsStephen Dewhurst30m
Demonstrates how legacy typelist meta‑algorithms get reused for modern variadic type and index sequences by automatically translating formats, predicates, and…
Talk on
Why and How to Roll Your Own std::function ImplementationTom Poole32m
Reimplements std::function inside JUCE with a vtable-style type eraser, benchmarks showing parity with libstdc++ and up to ~30% speed improvement when forcing…
Talk on
Co- and Contra-: Adding a Little VarianceMichał Dominiak31m
Claims that C++ lacks principled co/contravariance and that practical emulation is possible but brittle: shows language examples (C#, Scala, Java using…
Talk on
Better C++ using Machine Learning on Large ProjectsNicolas Fleury, Mathieu Nayrolles35m
Machine learning scores commits at pre-commit time using ~40 features (file age, lines added, author experience) and flags high-risk changes; the model reports…
Talk on
Memory Tagging and how it improves C/C++ memory safetyKostya Serebryany31m
Memory tagging attaches small tags to pointers and memory and catches mismatches to find bugs with low overhead: hardware SPARC ADI uses 4-bit tags per 64…
Talk on
Fancy Pointers for Fun and ProfitBob Steagall01h 02m
Shows how to implement synthetic pointers that satisfy the standard’s pointer-like requirements and back std::allocator to build relocatable heaps; provides…
Talk on
Smart References: There and Back AgainErik Valkering31m
Header-only smartref library emulates operator-dot and implements Unified Call Syntax, claiming zero runtime and memory overhead by using CRTP and inlined…
Talk on
The Networking TS in Practice: Testable, Composable Asynchronous I/O in C++R. Leahy58m
Explains how the Networking TS (Boost.Asio) yields testable, composable async I/O by building a composed operation async_wait_then_write that chains timer wait…
Talk on
Named Arguments from ScratchRichard Powell54m
Live coding builds a small named-arguments library in C++17 using Boost.Hana and Compiler Explorer, showing an adapter that accepts a hana::map of keys to…
Talk on
C++ ModulesNathan Sidwell59m
Implementation in GCC produces object files plus a binary module interface (BMI) and uses -fmodules-ts to read serialized interfaces; an experimental…
Talk on
Effective replacement of dynamic polymorphism with std::variantMateusz Pusz29m
Compares three FSM implementations — single dynamic dispatch, double dispatch (visitor/CRTP) and several std::variant designs — by building a TCP-like state…
Talk on
Refactoring Legacy Codebases with LibToolingJames Bennett24m
Describes using LibTooling with Clang AST matchers to write automated refactors that run on large legacy codebases, including creating a compile_commands…
Talk on
Inside Visual C++' Parallel AlgorithmsBilly O'Neal01h 02m
Visual C++ implements C++17 parallel algorithms by partitioning ranges, scheduling work on Windows Thread Pool calls like CreateThreadpoolWork, and merging…
Talk on
Signed integers are two's complementJF Bastien01h 00m
Claim: signed integer storage is narrowed to one true representation: two's complement, while arithmetic semantics (overflow) remain unspecified for now…
Talk on
Implementing the C++ Core Guidelines’ Lifetime Safety Profile in ClangMatthias Gehre, Gabor Horvath01h 08m
Clang-based checker implements Herb Sutter’s Lifetime Safety Profile using Clang AST/type trees and control-flow graphs and flags use-after-invalidation and…
Talk on
Using Template Magic to Automatically Generate Hybrid CPU/GPU-CodeElmar Westphal59m
Template-based wrappers let the same C++ code compile either into a CPU loop or a CUDA kernel by using a cudaMallocManaged allocator for transparent memory and…
Talk on
Design for PerformanceFedor Pikus01h 04m
A practitioner recounts measured design wins: using Google Benchmark and GCC with AVX2 intrinsics to turn a textbook matrix–vector loop from ~3 GB/s equivalent…
Talk on
Custom Overload Sets and Inline SFINAE for Truly Generic InterfacesVincent Reverdy55m
Shows how C++17 features (void_t, template deduction guides, invoke, constexpr if, decltype(auto) on lambdas) let code pick the first compilable option, pick…
Talk on
What do you mean "thread-safe"?Geoffrey Romer54m
Defines an API race as two concurrent operations that violate an object's contract (broader than a data race), classifies types as thread-safe or…
Talk on
Early Modern C++: How to Handle a C++03 Codebase in $CURRENT_YEARMathieu Ropert48m
Argues that Modern C++ principles—zero-cost abstractions, strong typing, concepts-like generic code and RAII—predate C++11 and that many C++11/14/17…
Talk on
Interactive C++ Compilation (REPL) Done in a Tiny and Embeddable WayViktor Kirilov30m
A tiny embeddable REPL compiles submitted C++ into shared-plugin snapshots, links them to the running executable, and initializes globals in top-to-bottom…
Talk on
How to Argue(ment)Richard Powell54m
Catalogs about 42 syntactic ways to pass parameters then narrows them to ~16 useful cases, with concrete names and rules: prefer snapshot by value when cheap…
Talk on
Let's Intercept OpenGL Function Calls...for Logging!Mike Shah30m
A working OpenGL logger is built that records 100% of API calls by interposing or injecting code and writing compact traces; strategies include simple…
Talk on
A Modern C++ Programming Model for GPUs using Khronos SYCLGordon Brown01h 01m
SYCL is presented as a standard C++ single‑source model layered on OpenCL 1.2 (SYCL 1.2.1) with an implementation (ComputeCpp) that compiles device lambdas to…
Talk on
Grill the CommitteeMarshall Clow, Titus Winters01h 27m
Progress on modules name-lookup fixes and a plan to let modules export incomplete types narrow major pain points, but only a small subset of executors has any…
Talk
C++ Cryptozoology - A Compendium of Cryptic Characters :: #2Adi Shavit30m
Covers specific C++ oddities with concrete consequences: shows abominable function types used to forward multiple method prototypes, notes copy‑on‑write is…
Talk on
Scaling Financial Transaction using 0MQ and JSONKevin Carpenter38m
Migrating legacy PowerBuilder services to Linux/C++ uses 0MQ (CPPZMQ) and nlohmann/json to cut message size by ~35% versus XML, drop a DB refresh from 90 to 10…
Talk on
Dealing with aliasing using contractsGabor Horvath37m
Shows that LLVM emits extra loads when parameters may alias and that C’s restrict enables vectorization, then proposes using contracts plus a new unique span…
Talk on
Teaching Old Compilers New Tricks: Transpiling C++17 to C++11Tony Wasserka32m
A libclang-based tool called clang-from-the-future reads C++17 and emits equivalent C++11 source by performing libclang AST rewriting and a custom…
Talk on
Get rich quick! Using Boost.Beast WebSockets and Networking TSVinnie Falco01h 01m
Claims that single‑developer WebSocket games earned tens of millions and hit ~$100k/day; shows a working C++11 Boost.Beast server and a one‑file…
Talk on
Liberating the Debugging Experience with the GDB Python APIJeff Trull29m
Shows how gdb’s Python API plus external libraries build concrete debugging tools: uses frame decorators and frame filters to collapse verbose template…
Talk on
Rapid Prototyping of Graphics Shaders in Modern C++Valentin Galea49m
Claims a C++ library lets you compile GLSL as C++ so shader code runs on the CPU with full debugging and quick prototyping. Implementation uses templated…
Talk on
Class Template Argument Deduction for EveryoneStephan T. Lavavej01h 01m
C++17’s Class Template Argument Deduction (CTAD) automatically infers template parameters for many STL types (std::pair, std::array, std::vector, lock guards)…
Talk on
Concepts in 60: Everything you need to know and nothing you don'tAndrew Sutton01h 11m
Concepts arrive as a way to constrain templates so the compiler checks syntactic requirements at use and prevents bizarre instantiations; the Concepts TS is…
Talk on
Building a C++ Reflection System in One Weekend Using Clang and LLVMArvid Gerstmann46m
Builds a runtime C++ reflection system over a weekend using Clang LibTooling and LLVM that parses ASTs, matches classes/fields annotated with an attribute, and…
Talk on
integral typesAndrei Zlate-Podani29m
Shows concrete failures: a template in Boost property_tree bug truncates wide characters to 8 bits and misparses hex character references; Boost.Accumulators…
Talk on
Compute More in Less Time Using C++ Simd Wrapper LibrariesJefferson Amstutz01h 03m
Shows concrete C++ SIMD wrapper patterns: a pack<T,Width> abstraction, practical APIs for load/store/gather/scatter, masked stores for tails, and vectorized…
Talk on
Development strategies: You've written a library - now what?Marshall Clow01h 17m
Library maintenance focuses on concrete practices: keep documentation and examples for getting started, run unit tests on every change with continuous…
Talk on
Initialization, Shutdown, and constexprGreg Falcon01h 01m
Explains why global objects fail at startup or shutdown by walking the actual rules: four storage durations, static initialization order fiasco, distinction of…
Talk on
Static analysis for concurrent C++ in Visual StudioAnna Gringauze24m
ConcurrencyCheck is a static analyzer replacing LocalEspC in Visual Studio that runs on MSVC and flags data races, deadlocks, stale-data and inconsistent lock…
Talk on
C++ Everywhere with WebAssemblyDamien Buhl32m
Shows that you can bind C++17 to HTML5 and run the same ABI on browser and server by compiling to WebAssembly with Emscripten and the nxxm toolchain, including…
Talk on
Class template argument deduction in C++17Timur Doumler01h 00m
Class template argument deduction (CTAD) in C++17 is explained as a two-step deduction process: synthesize function-like deduction candidates from…
Talk on
Better Code: Human InterfaceSean Parent59m
Claims that a UI must “Don’t Lie” by accurately conveying code semantics and shows concrete fixes: Photoshop contains a full 3‑D engine, timeline editor and an…
Talk on
Moving Faster: Everyday efficiency in modern C++Alan Talbot01h 00m
Argues that performance almost always matters and gives concrete fixes: count heap allocations, treat cache misses as the new floating point divides, prefer…
Talk on
Large-Scale Changes at Google: Lessons Learned From 5 Yrs of Mass MigrationsH. Wright01h 00m
Google runs migrations across a single monorepo of 2 billion lines of code with ~60k changes/day and hundreds of millions of C++ lines, and succeeds by using…
Talk on
Clangd: architecture of a scalable C++ language serverIlya Biryukov52m
Clangd is an LLVM/Clang-based Language Server Protocol implementation that targets editor integration and large codebases by combining a compiler-driven AST…
Talk on
Easy to Use, Hard to Misuse: Declarative Style in C++Ben Deane01h 01m
Argues that fewer statements and more expressions make C++ code easier to reason about, showing concrete rewrites: replace assignment-in-conditions with…
Talk on
The Most Valuable ValuesJuan Pedro Bolivar Puente59m
Argues that value semantics belong at the architectural level and demonstrates a concrete C++ implementation: a unidirectional data flow using std::variant for…
Talk on
Standard Library Compatibility Guidelines (SD-8)Titus Winters01h 01m
A new standing document SD-8 records that the committee reserves the right to add names, members, overloads, default arguments and change return types in…
Talk on
Software SecurityPatricia Aas, Matt Miller, Matt Butler01h 01m
Panelists argue that C++ remains powerful but not safe by default, and most real fixes are procedural: set up a security hotline, use continuous deployment and…
Talk on
The Salami Method for Cross Platform DevelopmentAdi Shavit01h 00m
Proposes slicing a cross‑platform C++ system into thin transparent layers so platform nastiness lives only at the borders; implements a single C++ OpenCV…
Talk on
Concurrency Challenges of Interrupt Service RoutinesOdin Holmes01h 01m
Shows that Interrupt Service Routines on Cortex-class MCUs inject execution by saving a few registers and jumping via the nested vector interrupt controller…
Talk on
Scripting at the Speed of Thought: Lua and C++ with sol3JeanHeyd Meneide01h 01m
A C++ binding library that replaces tuple-heavy compile‑time plumbing with a runtime-backed registry, sol2/sol3 exposes C++ classes as Lua usertypes with…
Talk on
The Bits Between the Bits: How We Get to main()Matt Godbolt01h 04m
Linux executables assemble from per-file ELF sections that the compiler emits and the linker stitches together; using objdump, gdb and readelf the talk traces…
Talk on
Interfaces MatterJohn Woolverton36m
Chronicles how C++ containers keep getting tugged between performance hacks and safe interfaces: shows why copy‑on‑write breaks in practice, why RVO/copy…
Talk on
Applied Best PracticesJason Turner01h 03m
Builds a constexpr ARM emulator plus GUI, ELF parser and tiny linker that actually compiles and steps code at compile time so unit tests that compile are…
Talk on
Feather: A Modern C++ Web Development FrameworkYu Qi31m
Feather bundles three C++ libraries—cinatra, ormpp, render—plus AOP glue to build web apps; a “hello world” is five lines and a production site (purecpp.org)…
Talk on
C++ Modules and Large-Scale DevelopmentJohn Lakos59m
Argues that C++ modules mainly reshape architecture not just compile times, listing concrete requirements: modules must be purely additive, hierarchical…
Talk on
Build Systems: a Simple Solution to a Complicated ProblemPeter Bindels49m
Claims a simpler C++ build flow by reading all source with cpp-dependencies to derive file- and component-level includes and then running a single tool called…
Talk on
Bringing C++ 17 Parallel Algorithms to a standard library near youThomas Rodgers31m
Intel donates a near-complete C++17 parallel algorithms implementation and integration work adapts it into libstdc++/libc++ by cleaning macros/ADL…
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.