Meeting C++ 2017
2017-11-09..2017-11-11
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 |
|---|---|---|
| Polymorphic Task | Sean Parent | 08m |
Implements a polymorphic task template that stores any one-shot callable like std::function but supports moving out payloads (unique_ptr) and uses placement… | ||
| 5 Things I figured out while ... | Kate Gregory | 10m |
An experimental treatment starts working one year and eight days ago and it's working after an initial three-to-six month prognosis, kids are ages 24 and 28… | ||
| Boundary Conditions | John Lakos | 12m |
Examines the birthday-problem implementation and shows tests catching a platform-imposed limit: the probability crosses 50% at 23 people but floating-point… | ||
| Command Line Parser Library | Phil Nash | 06m |
A composable command-line parser called Clara is extracted from Catch and rewritten for C++11 so CLI code composes instead of duplicating. Each option is a… | ||
| Lesson to Learn | Rainer Grimm | 07m |
A concrete caution about publishing a technical book claims that working with a publisher can still end in cancel publishing after contracts and publicity are… | ||
| Diversity and Inclusion | Guy Davidson | 15m |
Argues that the talent pool is too small and gives concrete UK figures: 47% of the UK workforce are women, 19% are disabled, 36% are not white British… | ||
| Programming in a different domain | Jens Weller | 07m |
Asserts that DNA is programmable like code: codons are triplets of bases and enzymes act like runtime, viruses deliver payloads as information, and researchers… | ||
| It's Complicated | Kate Gregory | 02h 02m |
A messy MFC benchmark app is split: a WPF front end in C# and a preserved C++ engine with a managed translation layer, then the engine loop is refactored using… | ||
| Embedded & C++ | Wouter van Ooijen | 01h 38m |
Explains why the Ariane 5 overflow failure and late CPU overload make strict constraints for embedded C++: tiny RAM budgets and CPU spikes force design rules… | ||
| The most important API design principle | Marc Mutz | 08m |
Claims that APIs should expose Non owning interface views not owning containers, demonstrates this with QStringView and by changing QRegion to be QRegion… | ||
| Structured Bindings demystified | Marc Mutz | 10m |
Explains that structured bindings declare identifiers for subobjects not for the whole object, so the bound names refer to members and not a named temporary… | ||
| Fastbuild | Arvid Gerstmann | 10m |
FastBuild claims to cut compile time by using parallel compilation, an optional object cache and unity/block builds, and it runs as a distributed worker… | ||
| std::launder | Réka Kovács | 07m |
C++17 adds std::launder to allow reusing an old pointer after placement new when the new object has const or reference members by acting as a… | ||
| Is this available? | Miro Knejp | 06m |
Is this available? - Miro Knejp - Lightning Talks Meeting C++ 2017 | ||
| std::optional and the m word | Simon Brand | 09m |
std::optional has two states and is claimed to behave as a monad here: it supports map (apply-if-present) and bind (compose operations that may fail) so… | ||
| Statistical scientific programming OO patterns: accumulators | Olivia Quinet | 07m |
Company code bases a C++ scientific core engine that processes clinical trial datasets and replaces ad hoc loops with boost accumulator or custom accumulator… | ||
| The case for Vendored Builds | Arvid Gerstmann | 07m |
Argues that bundling every compiler, library and build system into the repo yields repeatable builds and simple onboarding, lets one perform rollbacks without… | ||
| Is C++ really a highperformance language? | Gabor Horvath | 14m |
Is C++ really a highperformance language? - Gábor Horváth - Lightning Talks Meeting C++ 2017 | ||
| The need for a package manager interface | Mathieu Ropert | 08m |
C++ lacks a standard interface between package managers and build systems so projects avoid reuse; dozens of build systems and thousands of existing projects… | ||
| The stand up | Phil Nash | 08m |
Claims specific health effects and an intervention backed by sources: sitting >6 hours raises 15-year mortality risk by 40% even with exercise, standing… | ||
| Type punning done right | Andreas Weis | 07m |
Claims that safe type punning uses a memcpy pattern not pointer casts and that compilers typically optimize the memcpy away. Demonstrates the concrete trick of… | ||
| function_ref | Vittorio Romeo | 09m |
A proposal called function_ref provides a constrained callable type that behaves like a non-owning lightweight reference to any callable matching a signature… | ||
| A variant of recursive decent parsing | Björn Fahller | 09m |
Claims a tiny, readable recursive‑descent parser replaces bulky generated code by using std::variant and visit with an overloaded lambdas via inheritance… | ||
| A quick view into a compiler | Arvid Gerstmann | 10m |
A compact tour moves from source text through preprocessor-lexer-parser-analyzer into an AST then an IR, describes the middle end running dozens of passes and… | ||
| Algorithms and Iterators for Multidimensional Arrays | Cem Bassoy | 09m |
Claims a practical way to decouple algorithms from data structures for contiguous multidimensional arrays by making iteration the interface: a strided-based… | ||
| A Short Story About... | Andreas Rein | 06m |
Claims that production prototypes use JavaScript across every layer, that configuration lives as JSON/XML in a central database, and that development and demos… | ||
| Tools from the C++ Ecosystem to save a leg | Anastasia Kazakova | 01h 01m |
Claims that tools can prevent C++ footguns get demonstrated with concrete tooling and limits: clang-tidy modernize applies automated migrations and clang-tidy… | ||
| Introduction to proposed std::expected | Niall Douglas | 01h 37m |
Post‑Toronto std::expected T, E aims for WG21 adoption around C++20 and promises an optional‑like API plus monadic operators and an operator try proposal to… | ||
| The Three Little Dots and the Big Bad Lambdas | Joel Falcou | 01h 10m |
Claims that C++14/17 idioms actually replace heavy TMP with generic lambdas and pack tricks, showing concrete idioms: std::integer_sequence and pack expansion… | ||
| Modern CMake for modular design | Mathieu Ropert | 55m |
Shows concrete migration from legacy CMake anti patterns to target-based usage: how to express dependencies with target_link_libraries with… | ||
| Dragging C++ into the Modern era | Guy Davidson | 59m |
A proposed Standard C++ 2D graphics API is nearly ready with a reference implementation on GitHub and a 160‑page paper; it exposes RGBA floats, templated… | ||
| Parallel Computing Visualization | Dori Exterman | 57m |
A live visualization for multi-process builds shows real data: the free execution visualization tool (incredible) maps tasks to cores, colors distributable… | ||
| Local (Arena) Memory Allocators Part 1 | John Lakos | 58m |
Claims that replacing a single global allocator with targeted local allocators can yield order-of-magnitude speed improvements, and measures that claim with… | ||
| Local (Arena) Allocators Part II | John Lakos | 01h 08m |
Claim: replacing a single global allocator with per-subsystem local allocators often cuts runtime by factors of 3–20, sometimes an order-of-magnitude speed… | ||
| An inspiring introduction into Template Meta Programming | Milosz Warzecha | 40m |
In this presentation you will learn about the tools of modern C++ Template Metaprogramming. The techniques of TMP allow you to introduce compile-time… | ||
| Improve your C++ with inspirations from other languages | Andreas Reischuck | 49m |
Argues specific adaptations rather than fluffy comparisons: shows how other languages’ ideas map to current C++ by giving concrete code patterns, compile flags… | ||
| Modern C++ testing with Catch2 | Phil Nash | 45m |
Catch2 rebases Catch on C++11 and ships as a single header file plus an optional CATCH_CONFIG_MAIN so a demo project compiles links and runs a failing test… | ||
| The performance Addict's Toolbox | Peter Steinbach | 55m |
Quick practical survey of measurement tools and workflows: sampling with perf and visualizing with flame graph pinpoints hotspots (example: ETH miner dominated… | ||
| Strong types for strong interfaces | Jonathan Boccara | 52m |
A generic named_type wrapper demonstrates strong types for units, parameters and lambdas, with a reference variant enabled by SFINAE to avoid unwanted copies… | ||
| There is a new future | Felix Petriconi | 01h 02m |
Claims that std::future is broken and shows an open‑source alternative (stlab) that adds continuations, when_all/when_any, split and cancellation, a custom… | ||
| Is std::function really the best we can do? | Lukas Bergdoll | 01h 05m |
Argues that std::function carries predictable runtime and memory overhead and that replacing it with template-based delegates and small-object in-place… | ||
| Code Reviews - Why, what and how | Arne Mertz | 59m |
Shows empirical claims and concrete practices: historical studies report 20–30% bug reduction from inspections, automated tests overlap but don’t replace… | ||
| Bringing clang-tidy magic to Visual Studio C++ Developers | Victor Ciura | 01h 02m |
A Windows‑only C++ product of 2.5 million lines compiles under Visual Studio while also being run through clang‑tidy by extracting project settings, running… | ||
| StringViews, StringViews everywhere! | Marc Mutz | 55m |
Explains why std::string_view and QStringView make non-owning string APIs practical, shows concrete code that replaces std::string params to avoid heap… | ||
| API & ABI versioning | Mathieu Ropert | 56m |
Defines concrete rules that decide compatibility: which symbol names change, how mangling and vtable layout and struct offsets alter binaries, and when those… | ||
| Reader-Writer Lock versus Mutex | Jeffrey Mendelsohn | 56m |
Claim: a mutex often outperforms a reader‑writer lock in high‑contention, short‑hold regimes. Evaluation uses Linux multi‑platform benchmarks with synthetic… | ||
| Fantastic Algorithms and Where To Find Them | Nicholas Ormrod | 56m |
Describes concrete algorithms and what they actually guarantee: heavy hitters (Boyer‑Moore style) flags every key above an x% threshold with a single pass but… | ||
| Reactive Equations | André Bergner | 01h 02m |
A C++ system named zignal builds a dependency graph at compile time using template metaprogramming, expression templates, and compile-time maps/sets to avoid… | ||
| True parallelism, with no concept of threads | Alfred Bratterud | 01h 06m |
IncludeOS exposes per-core event loops so code can assign a lambda to a CPU and run without OS context switches; an SMP_add_tasks API wakes cores and the demo… | ||
| Dealing with software dependencies | Kiki de Rooij, Peter Bindels | 01h 20m |
Explains when dependencies are actual problems and when they’re just words, demonstrates concrete fixes (forward declarations, pImpl, turning public includes… | ||
| C++: Unexpected Behaviour | Antonio Mallia, Jaime Alonso | 33m |
Lists concrete surprises: code snippets that let private method execute via base pointer, array indexing with literal first (5[a]), overload-resolution gotchas… | ||
| Practical C++17 | Jason Turner | 56m |
Applying C++17 to a 25k LOC project shows concrete wins and pitfalls: ChaiScript (25k LOC) used as the testbed reveals noexcept in the type system gives ~1%… | ||
| Functional Programming: data | Ivan Čukić | 59m |
Claims that C++17 tools make state-safe, lock-free designs practical: uses std::variant/std::optional plus std::visit/overloaded for exhaustive, zero-pointer… | ||
| Deep Learning with C++ | Peter Goldsborough | 57m |
Repository with code and slides plus live demos show real C++ kernels and deployments: a working custom TensorFlow op implemented with Eigen, a CUDA/cuDNN… | ||
| Reflection in C++ Next | Anton Bikineev | 40m |
Claims two workable static-reflection designs (the reflexpr operator and a dollar-value variant), contrasts heterogeneous vs homogeneous value syntax, and… | ||
| How C++ Debuggers work | Simon Brand | 45m |
Explains how debuggers actually work on x86 Linux: parses ELF and DWARF to map source to addresses, sets software breakpoints by writing 0xCC into the… | ||
| Advanced Tools for Better Productivity | Gabor Horvath | 01h 00m |
Slides and demos show concrete results: clang tools modernize code and emit specific refactors (Clang-Tidy converts auto_ptr, simplifies ternaries), static… | ||
| Practical constexpr | Jason Turner | 01h 02m |
Applies constexpr across a 25k line ChaiScript codebase and reports concrete effects: many indiscriminate changes show 0% change while a few targeted… | ||
| Concepts driven design | Kris Jusiak | 59m |
Concepts land in the C++20 draft and claim to give precise, compile‑time interfaces that dramatically improve diagnostics and replace SFINAE plumbing; earlier… | ||
| Declarative thinking, declarative practice | Kevlin Henney | 01h 27m |
Compares imperative vs declarative with concrete C++ rewrites using ranges, transforms, iterators and lazy evaluation to produce first hundred squares, parses… | ||
| The most valuable values | Juanpe Bolívar | 01h 03m |
Argues that persistent immutable containers (Immer) make architecture simpler and concurrent access lockfree, shows a C++ implementation using Immer and a… | ||
| Fun with (user-defined) attributes | Jonathan Müller | 55m |
C++17 requires compilers to ignore unknown attributes, so custom, user-defined attributes become usable for real tools. The talk demonstrates how to write our… | ||
| Free your functions! | Klaus Iglberger | 59m |
Claims that C++ should favor non-member non-friend functions over member functions and backs that with concrete examples and mechanisms: a small reset_values… | ||
| The hidden rules of world-class C++ code | Boris Schäling | 01h 00m |
Claim: the familiar factory method can be reimplemented without heavy inheritance while keeping delegation, extensibility, reuse and runtime selection… | ||
| Threads and Locks must Go | Rainer Grimm | 59m |
C++17 already ships parallel and vectorized STL algorithms via execution policies so large ranges actually run mapreduce style and reveal surprising race edges… | ||
| nothing matches | ||