Meeting C++ 2018
2018-11-15..2018-11-17
Berlin, Germany
[Meeting C++ 2014, Meeting C++ 2015, Meeting C++ 2016, Meeting C++ 2017, Meeting C++ 2018, Meeting C++ 2019, Meeting C++ 2020, Meeting C++ 2021, Meeting C++ 2022, Meeting C++ 2023, Meeting C++ 2024, Meeting C++ 2025]
| title | author | length |
|---|---|---|
| The next big Thing | Andrei Alexandrescu | 01h 55m |
Claim: design by introspection is the practical next big thing because it combines compile‑time queries, does this code compile?, and arbitrary compile‑time… | ||
| The Truth of a Procedure | Lisa Lippincott | 01h 12m |
A procedure gets judged by concrete rules: an interface prologue and epilogue, claim and usable assertions, and a game where the outside world names inputs and… | ||
| 50 shades of C++ | Nicolai M. Josuttis | 01h 30m |
Explains concrete fixes and surprising gotchas: prefer brace initialization by default and avoid parentheses or equals signs; use pass-by-value-and-move for… | ||
| Taming dynamic memory | Andreas Weis | 01h 03m |
Taming dynamic memory argues that locality and explicit allocator choice beat vague “examples” and global new/delete by showing concrete strategies, costs and… | ||
| Better C++14 reflections | Antony Polukhin | 45m |
Claims a working C++14 reflection solution that needs no macros or external tooling and ships as Boost.PPR (GitHub). Implements auto ostream, comparisons… | ||
| Data oriented design in practice | Stoyan Nikolov | 01h 04m |
Claims that reworking a browser animation subsystem into C++ data oriented layouts yields real gains the author shows a custom engine hitting smooth 60fps… | ||
| Regular Types and why do I care? | Victor Ciura | 53m |
Argues that regular types are the necessary foundation for reliable generic code, shows failures and fixes using std::sort and a counterexample that breaks… | ||
| Benchmarking C++, From video games to algorithmic trading | Alexander Radchenko | 47m |
Claimed single-run fizzbuzz latency measures ~98 ns on a Xeon using Google Benchmark and wire-to-wire hardware timestamps that are single-digit nanoseconds… | ||
| Writing Cache-Friendly C++ | Jonathan Müller | 55m |
Shows that memory layout is the main determinant of C++ performance by measuring a custom memory-access benchmark and using sampling/instrumentation to compare… | ||
| C++ Concepts and Ranges | Mateusz Pusz | 01h 00m |
Concrete changes to C++20 are demonstrated: actual concept syntax, shortforms for constrained auto, and recent San Diego edits that alter return-type checking… | ||
| Time Travel Debugging | James McNellis | 01h 02m |
Tool demos a concrete claim: the WinDbg preview on Windows 10 records every instruction into a trace file that the debugger then replay[s] forward and backward… | ||
| Option(al) is not a failure | Phil Nash | 01h 02m |
Argues that ADT-style error handling actually works: use std::optional for marked propagation, move to std::expected (or Boost Outcome) for richer errors, and… | ||
| C++ Mixins | Odin Holmes | 01h 01m |
Claims a composition system for bare‑metal C++ that replaces virtuals with static interface mixins and implementation mixins found by ability tags, implemented… | ||
| Initialization in modern C++ | Timur Doumler | 01h 01m |
Survey of every initializer from C to C++20: precise rules, surprising pitfalls and fixes. Shows when code does value initialization vs zero initialization… | ||
| The Hitchhikers guide to faster builds | Viktor Kirilov | 59m |
Claim: large C++ projects balloon compile time (Opera 15 → 64 minutes), costing ~\$10,000 per developer per year and ~\$3M for 100 devs. Practical fixes and… | ||
| A new look at TMP | Ivan Čukić | 49m |
Argues that TMP remains useful mainly for type-level programming and demonstrates concrete techniques: writing meta-functions as using-alias meta-functions… | ||
| std variant and the power of pattern matching | Nikolai Wuttke | 59m |
Shows that using std::variant plus an overloaded visitor yields exhaustive, type-safe handling of union-like cases and maps naturally to state machines and… | ||
| Dealing with aliasing using contracts | Gabor Horvath | 01h 00m |
Shows that annotating non-aliasing actually matters: real benchmarks report a mean speed >2x and rare cases up to 40x or 50x. Explains why type-based alias… | ||
| Structure aware fuzzing | Réka Kovács | 52m |
Slides and demos show concrete results: coverage‑guided fuzzers like AFL and lip buzzer instrument code and save minimal crashing inputs; a protocol buffer… | ||
| Coroutine TS: A New Way of Thinking | Andreas Reischuck | 01h 02m |
Introduces the C++ Coroutine TS implementation on GitHub that lowers coroutines into generator-based lowering and explicit state machines. Shows compiler… | ||
| Higher Order Functions for ordinary developers | Björn Fahller | 52m |
Shows how to write and compose C++14 higher-order functions that return lambdas (concrete examples: equals, compose, when_all, if_then) and claims compilers… | ||
| Socializing with {fmt} | Daniela Engert | 01h 03m |
Explains what {fmt} actually does: shows the custom formatters you write for user types, the template-based interface that compiles into fast code, and the… | ||
| pinned_vector | Miro Knejp, Jakob Schweißhelm | 54m |
pinned_vector claims a contiguous container that avoids pointer invalidation by reserving huge virtual address ranges and committing pages on demand with… | ||
| Compile-time Regular Expressions | Hana Dusikova | 01h 03m |
Covers a C++ library that compiles regular expressions at build time into generated matcher code (no runtime parsing or allocations). Demonstrates parsing of… | ||
| Policy-based design in C++20 | Goran Arandjelović | 01h 03m |
Policy-based design claims to replace runtime strategy objects with compile-time policy classes so a cable‑box example for DVB/DRM composes players, locks and… | ||
| A little order | Fred Tingaud | 46m |
Benchmarks on http://quick-bench.com/ using Google Benchmark compare std::sort, std::partial_sort, nth_element and custom approaches; claim: for median-like… | ||
| Engineering Software Integral Types | Andrei Zlate-Podani | 38m |
Finds dozens of practical failures: a Boost XML parser template that mangles character encodings, accumulators whose sum and mean silently overflow, and std… | ||
| Building a C++ Reflection System | Arvid Gerstmann | 57m |
A concrete C++ reflection system that parses the AST with LLVM/clang libTooling and generates a header with AST-driven code generation to provide runtime… | ||
| How to write more reliable code | Egor Bredikhin | 46m |
How to write more reliable code
Egor Bredikhin
Meeting C++ 2018
https://meetingcpp.com/mcpp/slides | ||
| Cross plattform C++ development is challenging | Marc Goodner | 52m |
Claim: cross-platform C++ is hard but concrete tooling makes it practical. Demonstrations use vcpkg (~700 ports) to fetch libraries, CMake as the build system… | ||
| Bringing Clean Code to large scale legacy Applications | Arne Mertz | 01h 03m |
Practical plan: focus refactoring on hotspots not the whole million‑to‑ten‑million‑line mess, add tests (start with integration then carve unit tests), use… | ||
| Recent developments and future outlook of Qt | Lars Knoll | 01h 02m |
Estimate of nearly 5 million downloads this year and a planned Qt 5.12 LTS release with a WebAssembly preview that compiles C++ apps to run in browsers… | ||
| boost.tmp: your DSL for Metaprogramming | Odin Holmes | 56m |
A new DSL called boost.tmp implements tacit template metaprogramming in C++11, with lazy-by-default expression templates, pipe-like composition and a call… | ||
| Programming challenges in converting R to C++ | Olivia Quinet | 58m |
Converts a clinical-trial R codebase (the smart package, MySQL-backed datasets, p‑value matrices) into C++ and reports concrete tradeoffs: replacing dense… | ||
| Clean Integral Code | Walther Zwart | 55m |
Argues that raw integers cause surprising bugs and that code needs concrete choices: use bitset for flags, strongly typed ID or name-tagged wrappers instead of… | ||
| Standardizing a linear algebra library | Guy Davidson | 01h 02m |
Proposes a C++ standard linear algebra API that separates storage vs operations, supplies fixed‑size, dynamic and MDSpan matrix view storages, plus… | ||
| These aren't the COM Objects you're looking for | Victor Ciura | 01h 01m |
Claims COM remains core to Windows and modern tooling makes it usable rather than mystical: shows a simple CoInitializeEx RAII wrapper, exposes BSTR pitfalls… | ||
| Continuable asynchronous programming with allocation aware futures | Denis Blank | 01h 00m |
Claims a header only C++14 library called continuable that implements allocation aware futures with fewer heap allocations (examples show six allocations for… | ||
| High performance data structures in boost | Boris Schäling | 01h 01m |
Claim: contiguous layout trumps pointer indirection so typical list and set code runs much slower. Measured numbers show ~160 ms vs ~33 ms (list vs vector) and… | ||
| Alices adventures in Template Land | Jonathan O'Connor | 57m |
Code implements an index type that deduces key and model types from a pointer-to-member so callers write a single template argument and get maps and extractors… | ||
| Range-based text formatting | Arno Schödl | 59m |
Range-based formatting uses range-v3 style pipelines and a homegrown ranges library (on GitHub under Boost license with 1 million lines of production use) to… | ||
| Teaching old compilers new tricks | Tony Wasserka | 01h 00m |
Claims a working preprocessor called clang from the future that uses libclang AST transforms to transpile C++14/17 features into C++11 source so legacy… | ||
| C++, QML and static reflection | Manuel Sanchez | 43m |
Claims a reproducible path to expose existing C++ data models to QML by generating static metadata with a Clang-based code generator and a header-only C++14… | ||
| Breadcrumbs won't help: how not to get lost in a lambda forest | Christian Hofmann | 36m |
Codebase uses 10,000 lambdas driving about 28,000 codecs and that scale exposes concrete failures: dangling this pointers cause crashes so never capture this… | ||
| Best Practices for Concurrency | Rainer Grimm | 52m |
Shows concrete failures and fixes: a reader‑writer example that silently writes via map default initialization and produces a data race; summing 100 million… | ||
| 20 years of extending C++: What can we learn? | David Millington | 51m |
Twenty years of C++ extensions power a UI-first C++ Builder: concrete features are properties (using the __property keyword that maps reads/writes to fields or… | ||
| More Modern CMake | Deniz Bahadir | 01h 06m |
Claims that switching to CMake 3.12 and later cuts boilerplate and crashes: targets carry usage requirements so includes, compile features and link flags… | ||
| nothing matches | ||