~/conference

CppCon 2017

C++ developers, library authors, systems programmers, performance engineers, developer tools engineers, build and release engineers

operator <=> three-way comparison; C++ modules and packages; pybind11 Python bindings; compile-time regular expressions; Boost.Asio mqtt_cpp library; Clang LibTooling code indexing; constexpr and type_traits idioms; constructor template argument deduction; Nix functional package manager; Conan C++ package management; reactor vs proactor async models; std::endl flushing and IO

titleauthorlength
10 Things Junior C++ Devs Don't GetVictor Ciura05m
Argues that the missing specifics are algorithmic math and concrete practice: read Alexander Stepanov on STL design and older algorithm histories, treat…
Talk on
Whitespace ≤ Comments << CodeWalter E. Brown12m
Claim: comments often do more harm than good when they duplicate or contradict code and they outlive fixes. Concrete rules: use assertions to record…
Talk on
The End of std::endlDietmar Kühl03m
Claim: std::endl does a newline plus a flush and that flush can slow heavy output dramatically. Measurements show a simple test of writing 80‑char lines for a…
Talk on
Reactor vs. ProactorSean Bollin05m
Clear difference: the reactor uses an event loop and OS calls like select/epoll to wait and dispatch handlers, so code must return quickly or a long blocking…
Talk on
C PointersJohn D. Woolverton05m
Starts with memory-managed C-style malloc arrays and a raytracer that uses pointers-to-pointers to store polygons and crashed GCC when a three-way assignment…
Talk on
Refactor or dieMikhail Matrosov05m
A concrete failure example leads the argument: a single review touches 94 files, accumulates 169 comments and consumes 26 hours, causing nightly tests to fail…
Talk on
A C++20 Preview: operator <=>Walter E. Brown09m
A new operator<=> (the three‑way or "spaceship" operator) is being added for C++20 with precedence and associativity defined and library support proposed as…
Talk on
Get Productive on Unfamiliar Source CodeEberhard Gräther04m
A simple UI change that takes three weeks illustrates that developers spend 50–98% of their time reading code and motivates a practical solution: a standalone…
Talk on
Pybind11 - Python on SteroidsJan Plhak05m
Pybind11 is a C++11 header-only library that binds C++ types and functions into Python code it shows a concrete example binding a Point type and a Convex Hull…
Talk on
Regular Expressions Redefined in C++Hana Dusikova04m
Claims a C++ library that turns regex literals into types at compile time, with a small LL(1) parser that translates patterns into the same type and eliminates…
Talk on
Captioning and Translating C++ Videos - PART 1 of 2Robin Kuzmin05m
Conference has over 100 sessions and most recordings reach hundreds to thousands of viewers, yet tens to hundreds per presenter can't follow spoken English and…
Talk at Ferranti (403), Meydenbauer Center on
Choosing an AbstractionDavid Sankel05m
Shows a tiny state machine implemented with an enum to trim and compress spaces and then compares four concrete interfaces: pass-by-reference…
Talk on
Introduction to SharpmakeNicolas Fleury05m
Sharpmake is now open-source and is a C#-based project generator designed for large C++ codebases, claiming it can convert C++ projects and generate projects…
Talk on
The Three Layers of Headers A Curious DiscoveryCharles L. Wilcox05m
Claim: any header can be decomposed into three layers of headers — a top layer of forward declarations, a middle interface file with type and free‑function…
Talk on
X-Macro: How to avoid repetitionMatthew Avery04m
Shows an implemented pattern that keeps one single source list of enum entries and uses the preprocessor to generate both the enum and string conversion so you…
Talk on
Signed Integers: Faster and CorrectorJohn McFarlane05m
Claim: using signed integers lets the optimizer generate simpler, faster code by relying on signed overflow undefined behavior. Evidence: GCC blog examples and…
Talk on
C++ Modules and Packages: Making Dreams Come TrueBoris Kolpackov05m
Locates a repository, adds it to a local package config, and creates compiler-specific directories (a clang config then an msvc one), fetches a modularized…
Talk on
mqtt_cpp: Boost.Asio based mqtt communication libraryTakatoshi Kondo05m
Header‑only Boost.Asio MQTT library claims full MQTT 3.1.1 support with plans for MQTT 5 and exposes both synchronous and asynchronous APIs plus client and…
Talk on
When every Microseconds counts: Lessons learned about performanceNimrod Sapir05m
Claims: measurement beats assumption — a custom pre-allocated memory pool sometimes loses to malloc until hot-segment reuse is fixed, and fixing it yields a…
Talk on
Solving a bug via lateral thinkingGiuseppe D'Angelo05m
A bug in Qt's V4 JavaScript engine makes a simple string comparison return true; GDB debugging fails because pointer tagging and optimizations defeat…
Talk on
A Composable Command Line ParserPhil Nash05m
A command-line parser library is extracted from Catch, released as Clara, and rewritten for C++11 to make small parsers composable. Each parser returns…
Talk on
std:: exchange IdiomsBen Deane04m
std::exchange is presented as a small C++14 utility that can be backported to C++11 and used to replace swap in common patterns, saving a move and an extra…
Talk on
The design of absl::StrCat...Jorg Brown05m
absl::StrCat implements a one‑allocation concatenation that avoids the cascade of temporaries created by repeated operator+ by converting inputs to AlphaNum (a…
Talk on
Using type_traits and constexpr to make code more readable/debuggableJason Jurecka05m
Macro-based reflection for serialization gets replaced by real type traits and constexpr so generated code disappears and debugging becomes possible. The code…
Talk on
Making optional optionalRoland Bock05m
Claims that construction choice matters: forwarding make_optional forces a compile time decision so it behaves like make_mandatory, a homemade…
Talk on
Post(er)modern C++Erik Valkering05m
Claim: a header-only library implements smart references now with zero-overhead semantics by using delegation (inherit from the delegate type) and requires a…
Talk on
(don't) Copy Paste All The ThingsGaspar Azman04m
Argument: copying a boilerplate move constructor without noexcept and without thinking about destructor behavior leads to real bugs. Example: operator move…
Talk on
Why not Conan (part II)?Diego Rodriguez-Lopez03m
Five concrete objections repeat and then reverse: building from source is better, supporting multiple build systems is painful in practice, and no public…
Talk on
DateTime Programming For Everyone. Everywhere.Tai Meng05m
The project chooses nanosecond precision to match Oracle and capture high‑volume trading and scientific timestamps, and replaces chrono::duration’s template…
Talk on
DynaMix: A New Take on Polymorphism in C++Viktor Kirilov05m
A C++ library that actually composes and mutates objects at runtime: objects, dynamic mixins, and unicast/multicast messages form the API, with mixins…
Talk on
Throwing Exceptions for Fun and ProfitJody Hagins06m
Argues that throwing exceptions can match return-code performance by moving construction and throw logic into a noinline/noreturn helper so call sites stay…
Talk on
C++ KoansTony Van Eerd05m
Seven short koans present concrete developer traps and the exact outcomes so you can choose. Examples include a promised lock-free queue that is not lock-free…
Talk on
An Introduction To Shogun Machine Learning Toolbox One For AllPan Deng05m
Shogun is a C++ machine‑learning toolbox born in 1999 with 300,000 lines of code on GitHub that provides a unified interface to swap SVM implementations and…
Talk on
Thoughts on the Metaclass proposalGabriel Aubut-Lussier05m
Metaclasses let you enforce constraints, generate members and transform existing members — example: private methods are rejected, the compiler generates a…
Talk on
Nix: A functional package manager for your C++ software stackAdrien Devresse05m
Nix claims reproducibility for C++ stacks by building everything in isolated, sandboxed environments and storing each build under a cryptographic-hashed prefix…
Talk on
Constructor Template Argument Deduction Best PracticesMike Spertis06m
C++17 constructor template argument deduction (CTAD) works but needs rules: use CTAD only when constructors do pure forwarding so code loses visual noise but…
Talk on
The Perils of Implementing Code from PDFsBen Combee04m
Copying the C-like pseudocode out of the h.265 spec into source files produces surprising failures: a Unicode hyphen ( U+2010 hyphen ) and curly quotes turn…
Talk on
quick-bench.comFred Tingaud04m
A live micro‑benchmarking site quick-bench.com runs Google Benchmark suites in the browser and shows bar charts; it generates one million random numbers with…
Talk on
Programing: The Last 4000 YearsJuanpe Bolívar06m
Argues that programming mirrors Western historical eras and gives concrete markers: classical era: LISP ML Ada Smalltalk with type inference continuations…
Talk on
Simple Solutions for High Performance: StaticFlatMapDaniel D. Duvilanski05m
Claim: replacing std::map with a tiny specialized container yields huge practical wins. Implementation is a StaticFlatMap built as a sorted array with binary…
Talk on
Speeding up PreprocessorIvan Sorokin04m
Prototype caches final expansions and tracks macro dependencies so a macro’s final replacement is computed once at first expansion and invalidated correctly…
Talk on
Heterogeneous System Architecture - Why Should You Care?Paul Blinzer05m
Heterogeneous System Architecture claims to let one source code target CPU and accelerators and deliver higher performance with lower power by exposing a…
Talk on
Calling code w/o headers...Jorg Brown04m
Shows a concrete way to call a function from a library header you do not have at compile time by exploiting delayed template instantiation and ADL: declare a…
Talk on
Transforming C++ Code with DMSMichael Mehlich05m
Shows a concrete comparison of DMS generalized compiler versus Clang tree rewrites, with the actual transformation rewriting a += to a = a + b written and…
Talk on
Face correlation with dlibJens Weller06m
A pipeline extracts faces from conference photos using dlib face recognition, converts each face to an N‑dimensional vector, and clusters results with Chinese…
Talk on
Universal Memoization DecoratorVictor Komarov05m
A generic C++ decorator implements universal memoization by turning a function into a cached callable using a key built from decayed arguments and a container…
Talk on
Trokam, an online search engine developed in C++Nicolas Slusarenko03m
Trokam presents a working prototype of an online search engine implemented almost entirely in C++ running on Digital Ocean with Step Two deployed on Amazon Web…
Talk on
Fantastic Four, The Invisible "Features"Siddharth Gupta04m
Four concrete C++ quirks appear with examples and minimal handwaving: URL as case label shows an HTTP prefix becomes a case name and trailing // turns the rest…
Talk on
A C++ review CommunityJens Weller05m
A community launches to review C++ libraries with a live r/cpp_review subreddit, a one‑month review window and an upcoming public list of libraries that passed…
Talk on
SCM Challenge: Unique WordsArthur O'Dwyer04m
A coding puzzle asks to print numbers up and down without repeated identifiers so a first approach is a tokenizer that enforces uniqueness, which forces weird…
Talk on
Get Involved!Michael Caisse05m
A long-running informal program teaches kids mechanical design, electronics and programming with 3D printers, CAD/CAM and workshops started 17 years ago…
Talk on
The amazing disappearing, reappearing trigraphs...Paul "TBBle" Hampson04m
Quick history and concrete claims about trigraphs their removal and odd fallout: 2009 UK proposal to deprecate trigraphs leads to a compromise that breaks raw…
Talk on
F.21Guiseppe D'Angelo05m
Guideline F.21 claims: to return multiple “out” values, return a struct rather than a tuple. Evidence: tuples permit accidental mixing of unrelated returned…
Talk on
STATIC_WARNMorris Hafner05m
When a static_assert would break portability but a compile time warning suffices this shows how to emit one by instantiating a templated warn_if type…
Talk on
“Learning and Teaching Modern C++”Bjarne Stroustrup01h 39m
Argues that teams can write type- and resource-safe ISO C++ today (C++17) without performance loss, and backs that with concrete tools: the C++ Core…
Talk on
“C++ as a "Live at Head" Language”Titus Winters01h 31m
Google runs a monorepo with ~250M lines of C++ and 12,000 active developers and claims C++ can be maintained by building from head rather than pinning…
Talk on
“Meta: Thoughts on generative C++”Herb Sutter01h 48m
Two years of proposals boil down to concrete design sketches and a working prototype that demonstrate naming class categories and generating code at compile…
Talk on
“Qt as a C++ Framework: History, Present State and Future”Lars Knoll01h 30m
26-year evolution of a cross‑platform C++ framework that now serves ~1,000,000 active users and a company with ~250 staff and €32M revenue; claims dual…
Talk on
“What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”Matt Godbolt01h 16m
A quick history and demo: a 2012 bash script grows into Compiler Explorer, a Node.js site that pipes user code to many compilers (GCC/Clang/MSVC via Docker on…
Talk on
"Designing (New) C++ Hardware”Olivier Giroux01h 00m
Claims Volta is built to run C++: memory now uses cudaMallocManaged migrates on demand plus a Linux HMM patch and NVLink + HMM makes memory taste like memory…
Talk on
“Programming with C++ Constraints: Background, Utility, and Gotchas"Walter E. Brown01h 03m
Claims that C++ will adopt compile-time constraints via requires-clauses and that they integrate with existing tools like enable_if and constexpr if…
Talk on
“Which Machine Am I Coding To?”Patrice Roy49m
Explains that C++ targets a formal C++ abstract machine not real hardware, documents the as-if rule that lets compilers remove dead computation (example: three…
Talk on
Latest & Greatest in Visual Studio for C++ developersSteve Carroll, DANIEL MOTH01h 02m
Visual Studio 2017 adds concrete upgrades: compiler conformance finishes C++11/14 and targets full C++17 by the 15.6 update, with 15.5 preview adding two‑phase…
Talk on
“New standards to the rescue: the view through an IDE’s glasses”Anastasia Kazakova31m
IDE vendors report a hard correctness vs performance tradeoff when parsing real C++: a 9,000-developer survey shows mixed standard adoption and slow migration…
Talk on
“The Quiet Little Gem in Modern C++: <system_error>”Charles Bay01h 14m
Claim: std::error_code is the right, tiny (≈16‑byte) handle for error interchange — use enumerations as the contract and libraries implement an error_category…
Talk on
“C++ Development with Visual Studio Code”Rong Lu01h 01m
Built a console calculator from scratch in 20-minute live build that compiles with GCC and runs under the integrated terminal, then debugs with GDB/LLDB using…
Talk on
“Modern C++ Interfaces..."Stephen Dewhurst56m
Argues that richer C++ features produce simpler, more robust interfaces by embedding policy and judgment into code; demonstrates replacing a naive memcpy with…
Talk on
“Coroutines: what can't they do?”Toby Allsopp48m
The C++ Coroutines TS (N4680) adds three keywords and customization points and the talk shows how the compiler transforms coroutines into a coroutine state, a…
Talk on
“constexpr ALL the Things!”Ben Deane, Jason Turner01h 10m
Builds a real constexpr JSON parser and even a constexpr regex engine using constexpr lambdas and a user-defined literal template (GCC/Clang extension)…
Talk on
“Time Travel Debugging..."J. McNellis, J. Mola, K. Sykes01h 01m
A Windows reverse debugger that captures a record/replay trace of a process and lets WinDbg replay it forwards and backwards, query it (DX / LINQ-style) and…
Talk on
“ EA’s Secret Weapon: Packages and Modules”Scott Wardle56m
EA has run a packages system for 14+ years that behaves like Ruby Gems or Rust cargo, hosting thousands of packages so a package download pulls all…
Talk on
“Almost Unlimited Modern C++ in Kernel-Mode Applications”Billy Baker51m
Describes running Modern C++ on RTX kernel-mode where Visual C++ lacks DLL support and standard headers yield unresolved externals; fixes include providing a…
Talk on
Captioning and Translating C++ Videos- Part 2 of 2Robin Kuzmin24m
A community site at cppvap.wikidot.com coordinates English caption creation and translations for C++ conference videos using YouTube’s community contributions…
Talk
“When a Microsecond Is an Eternity: High Performance Trading Systems in C++”Carl Cook01h 00m
Describes concrete, production-proven fixes: replacing scattered error handlers nets ~100–200 ns, avoiding virtuals via template-based configuration removes…
Talk on
“Unicode Strings: Why the Implementation Matters”Barbara Geller, Ansel Sermersheim59m
CsString is a standalone, BSD-licensed Unicode string library that tags every string with its encoding, exposes code-point iterators, and converts between…
Talk on
“Is Parallel Programming still hard? PART 1 of 2”P. McKenney, M. Michael, M. Wong59m
Argues that concurrency is now ubiquitous and solvable by better abstractions and tooling, not mysticism; compares performance, productivity and generality as…
Talk on
“Is Parallel Programming still hard? PART 2 of 2”P. McKenney, M. Michael, M. Wong48m
Survey of hardware and algorithms that explains why cachelines, store buffers and speculative execution force specific code choices and shows concrete…
Talk on
“Deconstructing the OS: The devil’s In the side effects”Alfred Bratterud58m
IncludeOS builds bootable ELF C++ unikernels with a minimal libc backend (implemented a write syscall to a serial driver) and a one‑liner tool that boots…
Talk on
“An allocator model for std2”Alisdair Meredith57m
Proposes replacing the many C++ allocator models with a single pmr-like runtime model that keeps allocators out of the type system, stashes a memory_resource…
Talk on
“A modern formatting library for C++”Victor Zverovich01h 01m
A modern C++ formatting library (fmt) implements a Python-like brace syntax and a std proposal P0645R0, uses variadic templates plus a compact type-erasure arg…
Talk on
“Faster Delivery of Large C/C++ Projects with..."D. Rodriguez-Losada Gonzalez01h 08m
CI that uses Conan plus Jenkins and Artifactory to build only the binaries that actually need rebuilding, using the dependency graph to trigger downstream jobs…
Talk on
“Building Better Worlds: Developing a Procedural City Tool for Alien..."Alan Bucior30m
Machi is a custom procedural city tool built for Alien: Covenant that uses a C++ core for road, lot and placement algorithms, a Python UI for artist control…
Talk on
“Esoteric Data Structures and Where to Find Them”Allan Deutsch30m
Describes four concrete tools and their trade-offs: slot map gives true constant-time insert/lookup/erase using a generation counter plus free list to avoid…
Talk on
“Enhanced Support for Value Semantics in C++17”Michael Park01h 00m
Covers concrete C++17 additions: std::optional (holds T in-place, adds nullopt_t, value_or copies/moves the contained T), std::variant (type-safe union, stores…
Talk on
“C++ atomics, from basic to advanced. What do they really do?”Fedor Pikus01h 14m
Benchmarks show a mutex with a per-thread local accumulator outruns naive atomic increments: the “wait-free” atomic-plus-equals version runs slower and scales…
Talk on
“Migrating a C++03 library to C++11 case study: Wt 4”Roel Standaert24m
Wt 4 migrates a large C++03 codebase to C++11, replacing boost.signals2 with a lambda/std::function/std::bind based implementation, swapping Boost.Date_Time…
Talk on
“From security to performance to GPU programming..."Sergey Zubkov27m
Shows that secure allocator wipes pages and locks them to keep secrets out of swap, demonstrates pool allocators (boost PMR and custom pools) that stop…
Talk on
“Enough x86 Assembly to Be Dangerous”Charles Bailey31m
Introduces practical x86 by showing Compiler Explorer (Godbolt) and disassemblers (objdump, gdb, Visual Studio) and walks through registers, virtual address…
Talk on
“folly::Function: A Non-copyable Alternative to std::function”Sven Over31m
A replacement for std::function that stores move-only callable objects and is deliberately non-copyable, folly::Function is implemented like std::function but…
Talk on
“Fuzz or lose..."Kostya Serebryany31m
Fuzzing is presented as a low-effort, high-impact practice: add a small fuzz target (a function that consumes a byte array), compile with instrumentation and…
Talk on
“Grill the Committee”Louis Dionne, Eric Niebler, Gor Nishanov, Gabriel Dos Reis, Bjarne Stroustrup, Herb Sutter01h 28m
Panel answers where each proposal stands: Concepts partly in C++20 with unfinished pieces, Ranges TS published and still trimming library bits, Modules on PDTS…
Talk
“How to Write Effective Documentation for C++ Libraries..."Robert Ramey01h 02m
GitHub survey data (5,500 respondents across ~3,800 projects) shows 93% frustrated by poor docs; the claim is that writing docs alongside code catches design…
Talk on
“Design Patterns for Low-Level Real-Time Rendering”Nicolas Guillemot55m
New GPU APIs like Vulkan Direct3D 12 and Metal give fine control but add complexity; the talk claims patterns that cut that complexity by an order of magnitude…
Talk on
“The Nightmare of Move Semantics for Trivial Classes”Nicolai Josuttis57m
Examines a simple Customer class with three members and counts actual string allocations for various constructor designs: naive const-ref approach produces up…
Talk on
“Everything You Ever Wanted to Know about DLLs”James McNellis01h 02m
Builds a tiny Hello.dll and PrintGreeting.exe to show exactly what ends up in a Windows PE: DOS stub, COFF header, sections (.text, .rdata), export directory…
Talk on
“Function default arguments: Slingshot or Shotgun?”Michael Price01h 01m
Function default arguments cause concrete pitfalls: names are bound at declaration, evaluated at call, multiple declarations merge defaults but the first…
Talk on
“Mocking Frameworks considered harmful”Peter Sommerlad01h 01m
Argues that common C++ mocking frameworks (GoogleMock, Trompeloeil) introduce macro-heavy DSLs, late runtime verification on object destruction, and fragile…
Talk on
“Cross-Platform Apps with Dropbox’s Djinni..."Stephen Spann49m
Demonstrates using Dropbox’s Djinni to generate C++, Objective‑C and Java bridge code from a single Djinni IDL so one C++ library provides Hello World…
Talk on
“dynamic_cast From Scratch”Arthur O'Dwyer59m
Builds a complete, bug‑free reimplementation of dynamic_cast using the Itanium C++ ABI and a small set of nonportable helpers, exposes where compilers waste…
Talk on
“MPark.Patterns: Pattern Matching in C++”Michael Park01h 00m
Library called MPark.Patterns implements pattern matching in C++17 as a header-only API using structured bindings, apply, visit and custom traits…
Talk on
“Using Modern CMake Patterns to Enforce a Good Modular Design”Mathieu Ropert58m
Argues that using modern CMake target APIs enforces modular design by making dependencies explicit, avoiding flag leaks, and catching circular or hidden links…
Talk on
“Multithreading is the answer. What is the question? (part 1 of 2)”Ansel Sermersheim47m
Explains concrete multithreading patterns: use of std::future/std::promise as ticket pairs, moving ownership with unique_ptr to avoid shared state, and passing…
Talk on
“Concurrency, Parallelism and Coroutines”Anthony Williams01h 05m
C++17 adds parallel overloads for ~100 algorithms via execution policies (seq, par, par_unseq) so algorithms like for_each, transform_reduce and sort can run…
Talk on
“Recreational C++”Alisdair Meredith01h 03m
A series of small C++ experiments implements and tests type traits, tuples/pair reworkings, and coding-style probes, with concrete techniques and outcomes…
Talk
“CNL: A Compositional Numeric Library”John McFarlane01h 00m
CNL presents a composable numerics library that gives zero-cost abstractions over integers: fixed_point adds a binary radix to an integer, multiplication…
Talk on
“Agent based class design”Odin Holmes59m
Proposes decomposing classes into small agents that publish capabilities and requirements and uses C++14 template metaprogramming to auto-wire them so valid…
Talk on
“Multithreading is the answer. What is the question? (part 2 of 2)”Ansel Sermersheim50m
Argues that multithreading is manageable by concrete abstractions: implements libGuarded (guarded, shared_guarded, ordered_guarded, deferred_guarded) and then…
Talk on
“Using Functional Programming Patterns..."Jeremy Demeule, Quentin Duval55m
Shows a functional design that replaces regex-and-if routing with pure functions: paths as URI→optional<params>, handlers as (request, params)→response, routes…
Talk on
Designing A Feature That Doesn't FitPatrice Roy51m
A concrete problem is controlling per-thread parameters like stack size when the C++ abstract machine has no defined “stack,” so the working approach adds an…
Talk on
“Local ('Arena') Memory Allocators (part 2 of 2)”John Lakos01h 02m
Four targeted benchmarks compare the platform global allocator, tcmalloc/jemalloc, and local strategies (monotonic, multipool, composite) using real containers…
Talk
“Postmodern C++”Tony Van Eerd51m
Argues that the useful C++ move is concrete: split logic into small subroutines (citing a two‑page 1951 paper), so code sections can be worked on and tested in…
Talk on
“Practical C++17”Jason Turner01h 01m
Porting a 25k-line header-only project, ChaiScript, to C++17 yields concrete wins and traps: class template deduction guides collapse dozens of overloads and…
Talk
“Hands-On With Abseil”Titus Winters59m
Introduces Abseil as Google’s portable C++ library set with concrete compatibility rules: a target five-year support window, Bazel as the build truth with…
Talk on
“Tools from the C++ eco-system to save a leg”Anastasia Kazakova52m
Survey of concrete C++ tooling that reduces real errors and maintenance cost: recommends using clang-format for deterministic style (but warns its fuzzy parser…
Talk on
Class Template Argument Deduction: A New AbstractionZhihao Yuan48m
Class template argument deduction (CTAD) in C++17 claims to be more than keystroke savings: it creates a new abstraction where a template-name-plus-parentheses…
Talk on
Delegate this! Designing with delegates in modern C++Alfred Bratterud58m
Showcases a header-only delegate implementation that matches C function pointer speed and interoperates with std::function, used to wire IncludeOS’s IP stack…
Talk on
ThinLTO: Scalable and Incremental Link-Time OptimizationTeresa Johnson01h 02m
Whole-program optimization is implemented as ThinLTO inside LLVM: each .o emits a small summary, the linker builds a combined index, makes import/inlining…
Talk on
Web | C++Lukas Bergdoll41m
Small voting webservice is implemented with WebSockets and FlatBuffers, showing end-to-end code and benchmarks: uWebSockets: ~2 MB memory for 10,000 concurrent…
Talk on
Seventeenification: Porting sqlpp11 to C++17Roland Bock51m
Report on porting sqlpp11 to C++17: actual code changes replace kludgy constexpr char arrays with inline variables and auto non-type template parameters…
Talk
Bringing Clang-tidy Magic to Visual Studio C++ DevelopersVictor Ciura01h 01m
A 2.5 million‑line Windows C++ codebase across 134 Visual Studio projects compiles with Clang after a multi‑month effort that introduces a configurable…
Talk
API & ABI Versioning...Mathieu Ropert01h 00m
Defines API vs ABI by concrete effects: symbol mangling changes when argument types change, struct size/alignment and member order change binary layouts, and…
Talk
10 Core Guidelines You Need to Start Using NowKate Gregory01h 03m
Picks ten actionable C++ Core Guidelines and shows concrete fixes: use in-class member initializers to avoid inconsistent defaults, prefer a default argument…
Talk
Boost Your Program’s Health by Adding Fibers to your CoroutineDavid Sackstein01h 04m
Compares stackless Coroutine TS (co_yield/co_await) and stackful Boost.Coroutine2, then shows integration with Boost.Asio and the Boost.Fiber scheduler. Builds…
Talk
Driving Into the Future With Modern C++: A Look at Adaptive AutosarJan Babst57m
Adaptive AUTOSAR adopts C++14 as language of choice and ships a publicly available guideline set linked to the Adaptive AUTOSAR release that traces rules to…
Talk
Naivety of Creating Cross-Platform, Modern C++ Libraries...Jonathan Henson58m
AWS SDK for C++ targets C++11, uses CMake and a no dependencies philosophy (libcurl/OpenSSL on Unix, commoncrypto on Apple, WinHttp/Bcrypt on Windows), ships…
Talk
C++ Templates RevisedNicolai Josuttis01h 01m
Second edition integrates Modern C++ and shows concrete fixes and patterns for real code: use inline constexpr static members to avoid ODR linker errors for…
Talk
Local ('Arena') Memory Allocators (part 1 of 2)John Lakos01h 00m
Local, subset-focused allocators outperform global new/delete and std::allocator in measured systems, with one reported case cutting a 10‑second reclamation to…
Talk
Read, Copy, Update, then what? RCU for non-kernel programmersFedor Pikus01h 08m
RCU implements a one-writer RCU publishing protocol: readers do atomic acquire-loads and writers prepare copies then atomically swap the root, deferring frees…
Talk on
Undefined Behavior in 2017 (part 1 of 2)John Regehr49m
Undefined behavior (UB) lets compilers assume impossible conditions, and modern optimizers increasingly turn those assumptions into surprising breakage…
Talk on
Undefined Behavior in 2017 (part 2 of 2)John Regehr26m
Recent years deliver practical defenses: AddressSanitizer finds heap/stack/out-of-bounds issues fast, UndefinedBehaviorSanitizer catches signed/unsigned…
Talk on
Building C++ ModulesBoris Kolpackov01h 07m
Modularized a real build2 utility (≈30 modules, unit tests) and sees 2.5x–3x faster builds with Clang and a modularized libstdc++; compilers emit a binary…
Talk on
A Test a Day Keeps Your Manager Away!Rian Quinn01h 01m
A concise how-to that wires C++ analysis into CI by building a hello world CI project that actually runs on Travis CI and AppVeyor and pulls in…
Talk on
Type Punning in C++17: Avoiding Pun-defined BehaviorScott Schurr01h 05m
C++17 rules which type-punning idioms are undefined and which are tolerable: the talk shows that casting between unrelated pointers or mutating non-mutable…
Talk on
Game Audio Programming in C++Guy Somberg51m
Shows how to get real-time game audio working with concrete numbers and code: a 25‑line FMOD example plays sound, a 250‑line engine adds 3D and jukebox…
Talk on
Compile-time reflection, Serialization and ORMYu Qi36m
Describes implementing compile-time reflection in Modern C++ using void_t, tuple, index_sequence, variadic templates, constexpr, macros and C++17 features…
Talk on
Web | C++Lukas Bergdoll41m
Compares three C++ WebSocket stacks by building a working straw‑poll service that uses FlatBuffers for zero‑copy messages and a static HTML/JS client; measures…
Talk on
Building for the Best of Us: Design and Development with Kids in MindSara Chipps58m
Builds a programmable friendship bracelet called Jewelbots that runs C++ firmware, uses the nRF51822 BLE chip and is coded via the Arduino IDE, shipped from…
Talk on
ReflectionAndrew Sutton01h 01m
Static compile-time reflection for C++ aims to turn declarations into usable values for metaprogramming and to project those values back into syntax; two…
Talk on
Practical Patterns with the Networking TSMichael Caisse01h 01m
Networking TS is stable, implemented on GitHub and built on Boost.Asio, and the talk walks through concrete patterns and gotchas: synchronous stream examples…
Talk on
Effective Qt (2017 edition)Giuseppe D'Angelo01h 01m
Recommendation: prefer std::vector/map/etc for business logic because Qt containers are older, slower, lack allocators/emplace/node APIs and still require…
Talk on
Make Classes Great Again! (Using Concepts for Customization Points)Vinnie Falco44m
Builds a reusable HTTP message class that lets callers swap body and header implementations and allocators, demonstrating static write/read customization for…
Talk on
Reader-Writer Lock versus Mutex - Understanding a Lost BetJeffrey Mendelsohn42m
A controlled Linux benchmark simulates back-to-back access to a shared map (load ≈300 math ops) and compares do-nothing, a single atomic operation, pthread…
Talk on
The Asynchronous C++ Parallel Programming ModelHartmut Kaiser01h 07m
Proposes an asynchronous C++ model implemented as HPX that turns code into dependency trees via futures and continuations (when_all / co_await), uses a…
Talk on
Mix Tests and Production Code With Doctest...Viktor Kirilov51m
doctest is a single-header C++ test framework that actually ships a tiny interface and a separate implementation block so including it everywhere costs ~20 ms…
Talk on
Practical Techniques for Improving C++ Build TimesDmitry Panin56m
Facebook shrinks C++ builds from hours to about five–ten minutes with a mix of tooling and code changes: use Buck for reproducible, content-addressed builds…
Talk on
How to Write a Custom AllocatorBob Steagall01h 04m
Explains how to implement C++14/17 allocators by showing the exact plumbing: required member functions (value_type, allocate, deallocate, converting ctor), how…
Talk on
A Tour of Deep Learning With C++Peter Goldsborough55m
Overview of concrete results and tools: demonstrates GANs and convolution math, implements a convolution with cuDNN and MKL, and shows a working edge‑detection…
Talk on
C++ and Persistent Memory Technologies, Like Intel's 3D-XPointTomasz Kapela01h 08m
An open source C++ API and library for byte-addressable persistent memory (works with Intel-style DIMMs and maps via DAX/ODAX) that implements undo-log…
Talk on
Naked coroutines live (with networking)Gor Nishanov01h 04m
Shows how C++ Coroutines TS plus the Networking TS can be used to build an async TCP server by live-coding two approaches: an easy adapter that uses…
Talk on
LauncherOne rocket with C++ engineDiego Franco01h 02m
Description of the LauncherOne autonomous flight safety software: C++ codebase for an aircraft-launched rocket that must meet FAA safety constraints, uses…
Talk on
So, you inherited a large code base...David Sankel55m
Describes converting a huge legacy C++ codebase into modern shape by automation, measurement, and staged migrations rather than one big rewrite. Demonstrates…
Talk on
Ways to Handle Non-blocking Returns in Message-passing Programs...Sergey Ignatchenko59m
Compares a concrete purchase-by-reply example against eight ways to handle non-blocking returns, showing actual code shapes from message-passing plumbing and…
Talk on
The Holy Grail! A Hash Array Mapped Trie for C++Phil Nash51m
Proposes a Hash Array Mapped Trie (HAMT) that gives persistent structural sharing so copies cost two integers and depth for 15M items drops from ~24…
Talk on
Optimizing compilation times with TemplatesEddie Elizondo29m
Facebook’s Thrift RPC code generates huge per-field serializers so template instantiation dominates build time; measuring with -ftime-report and the Templight…
Talk on
Understanding the runtime behaviors of C++ programs using uftrace toolHonggyu Kim30m
uftrace instruments binaries using compiler-provided function hooks to record every call, arguments and return values without source changes, emits console…
Talk on
Inside the Qt Object ModelSimon Hausmann30m
A small calculator app demonstrates that Qt implements signals as generated functions so emit is a normal function call which packs parameter addresses into a…
Talk on
Howling at the Moon: Lua for C++ ProgrammersAndreas Weis33m
Lua is an embeddable, tiny scripting language whose full runtime can be as small as 180 KB binary with a short reference manual and only eight basic data…
Talk on
Designing a Fast, Efficient, Cache-friendly Hash Table, Step by StepMatt Kulukundis01h 00m
A new hash table called SwissTable implements a 2-level, N-way associative probing design with per-slot control bytes (seven-bit H2 tags) packed in 16-byte…
Talk on
Microcontrollers in Micro-increments...Mike Ritchie01h 01m
Argues that test-driven development plus CI can make microcontroller work faster and safer and demonstrates it on a custom washing-machine board; uses CATCH…
Talk on
Fantastic Algorithms and Where To Find ThemNicholas Ormrod47m
Describes concrete, deployable techniques: Boyer-Moore majority and its 1/k generalization for heavy hitters used to throttle DOSy callers (variant run per…
Talk on
Postmodern immutable data structuresJuan Pedro Bolivar Puente01h 06m
Library Immer implements persistent vectors using Relaxed Radix Balanced Trees with a 32-way branching factor (≈7 levels for 32-bit indexes) and an embedding…
Talk on
Traveling the Solar System with C++: Programming Rocket ScienceJuan Arrieta54m
Explains how production-grade C++ replaces legacy Fortran by modeling exact forces, frames, and ephemerides, using MONTE/BOA binary object archive for…
Talk on
Higher-order Functions in C++: Techniques and ApplicationsMichał Dominiak01h 02m
Argues that std::function’s common implementation forces unnecessary indirections and copyability, demonstrates a type-erasure implementation using a stored…
Talk on
What C++ developers should know about globals (and the linker)Nir Friedman35m
Demonstrates a reproducible segfault when an executable links a static library and a shared library that both provide the same global, showing the constructor…
Talk on
End-to-end Deadlock Debugging Tools at FacebookKenny Yu28m
Facebook builds four concrete tools: folly::Synchronized to force smaller critical sections and encode lock ownership in types, ThreadSanitizer run on CI and…
Talk on
A Type, by Any Other NameJon Cohen46m
Google's C++ library team uses type aliases to migrate millions of lines non-atomically: create a new implementation class, make old names alias the new one…
Talk on
A Soupçon of SFINAEArthur O'Dwyer01h 01m
A compact cookbook of concrete SFINAE recipes showing what compiles and what breaks: using void_t trick and decltype(declval()) for expression SFINAE to…
Talk on
An Interesting Lock-free Queue - Part 2 of NTony Van Eerd01h 05m
Detailed walkthrough of a lock-free, mostly-contiguous circular queue that handles integers and aims to be multi-producer, multi-consumer and growing and…
Talk on
Tools and Techniques To Stay Up-to-date With Modern C++Ingve Vormestrand41m
Practical ways to keep up: use Docker containers for isolated compilers and builds so you can try GCC/Clang versions without polluting the system; write tiny…
Talk on
I Wish I Could Use C++ 1x/y/z Joel Falcou55m
Demonstrates how to reproduce C++14/17 features on C++11/14 by concrete recipes: generic/variadic lambdas via an poly overload aggregator that composes…
Talk on
C++17 Parallel AlgorithmsDietmar Kühl57m
C++17 adds standardized parallel algorithms that accept execution policies (seq, par, par_unseq) and require element access functions to be race free…
Talk on
There Will Be Build Systems: I Configure Your MilkshakeIsabella Muerte58m
C++ build systems still force users into ad hoc setups: Make replacements like Ninja exist, meta systems like CMake and Meson are common (Meson admits only one…
Talk on
Performance Benchmarking with CeleroJohn Farrier45m
Small C++11 library Celero adds microbenchmarks to projects and produces CSV/JUnit/archived results for CI; it runs 10,000 samples with inner loops (example…
Talk on
Allocators: The Good PartsPablo Halpern01h 01m
Argues that C++17’s pmr model makes allocators practical, showing how to derive a memory resource (override do_allocate/do_deallocate/do_is_equal), wrap it in…
Talk on
C++ Exceptions and Stack UnwindingDave Watson51m
Measures actual throw cost by tracing from cxa_throw through unwinder into the Itanium ABI and compares implementations: libgcc (8-entry cache)…
Talk on
Designing a Unified Interface for ExecutionGordon Brown01h 03m
A unified C++ execution proposal defines concrete components (instruction stream, lightweight agents, executor, execution resource/context) and four distinct…
Talk on
Free Your Functions!Klaus Iglberger01h 02m
Argues that C++ code favors non-member, non-friend free functions because they reduce coupling, improve encapsulation, follow SRP and Open‑Closed, enable reuse…
Talk on
Curiously Recurring C++ Bugs at FacebookLouis Brandy52m
Facebook C++ history shows concrete failure modes: using map's square‑bracket inserts missing keys and silently returns zero; folly's findWithDefault variants…
Talk on
Going Nowhere FasterChandler Carruth01h 01m
Benchmark shows random-index probes reveal cache boundaries on an AMD Epyc: L1D ≈ 64 KB, L2 ≈ 512 KB, L3 ≈ 16 MB, with throughput falling from ~18 GB/s to ~15…
Talk on
Customizing the Standard ContainersMarshall Clow01h 00m
Covers how standard containers are actually customized: allocator objects versus allocator types, allocator responsibilities (allocators…
Talk on
Multidimensional Index Sets for Data Locality in HPC ApplicationsTobias Fuchs58m
Multidimensional index-set views in the DASH C++ library expose separate canonical and local index spaces, let algorithms compute intersections and contiguous…
Talk on
The Future of Texture CompressionRich Geldreich, Stephanie Hurlburt38m
Basis is a C++ transcoding system that produces a header-only transcoder which converts a single .basis file at runtime into existing GPU block formats (ETC1…
Talk on
C++/WinRT and the Future of C++ on WindowsScott Jones, Kenny Kerr01h 05m
C++/WinRT is a standard, header-only C++ projection that replaces C++/CX and compiler extensions, delivered by a tool called cppwinrt.exe that turns WinMD…
Talk on
Adding C++ modules-ts to the GNU CompilerNathan Sidwell01h 00m
Implements the Modules TS inside GCC by producing a serialized front‑end AST as a Binary Module Interface (BMI) cache rather than reparsing headers, adds a new…
Talk on
My Little Object File: How Linkers Implement C++Michael Spencer48m
Walks a C++ translation unit through actual object formats and tools, showing how ELF, MachO, COFF encode sections, symbols and relocations and how the linker…
Talk on
MetaAndrew Sutton01h 01m
Reports a Clang-based prototype (about a month and a half of work, with a tokenized proof-of-concept that took ~4 hours) that implements compile-time constexpr…
Talk on
C++17 ParallelSTL: A Standardization Experience Report for CPU and GPU on SYCLGordon Brown, Ruyman Reyes, Michael Wong01h 10m
Report describes a working ParallelSTL implementation that runs standard execution policies on CPUs and on GPUs via SYCL execution policy, with source on the…
Talk on
How to break an ABI and keep your users happyGennadiy Rozental50m
Google had long used a custom global string implementation (copy‑on‑write vs SSO) that costs about 2% slowdown and becomes unmanageable across a growing…
Talk on
Undefined Behaviour is awesome!Piotr Padlewski54m
Covers concrete examples where undefined behavior lets the optimizer rewrite or remove code: integer overflow enables assuming x+1>x, a null dereference leads…
Talk on
Runtime Polymorphism: Back to the BasicsLouis Dionne01h 08m
Explores concrete alternatives to inheritance by implementing a policy-based type erasure (the Dyno library) that supports remote storage, small‑buffer…
Talk on
C++17 Features (part 1 of 2)Bryce Adelstein Lelbach49m
C++17 consolidates practical language changes: structured bindings let auto [x,y] = point3 to name members (and work with tuples/arrays); selection statements…
Talk on
C++17 Features (part 2 of 2)Bryce Adelstein Lelbach54m
C++17 adds concrete library features: string_view: non-owning pointer+length avoids copies, but becomes invalid if the source moves; std::optional: no-heap…
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.