Readable Modern C++ and sync_ptr


Details
This month we welcome more great speakers: Timur Doumler and Romain Cheminade.
(Please remember to also register on the SkillsMatter page (https://skillsmatter.com/meetups/9199-readable-modern-c-plus-plus-and-sync_ptr)).
Agenda:
18:30 pre-session networking, including drinks at the bar if you like
19:00 Phil Nash (https://www.meetup.com/CppLondon/members/48127252/) << "Hello World"
Brief introduction and raffle for a JetBrains license
19:15 Timur Doumler (https://www.meetup.com/CppLondon/members/196258892/) << "Readable Modern C++"
C++ offers great performance and many powerful features like the standard library, a rich type system, and compile-time programming. However, it often ends up being hard to read. High-level languages like C++ are usually not written to communicate with compilers. They’re usually written to communicate with people. In fact, many developers spend more time reading and understanding other people's code than writing their own.
This talk focuses on how to optimise C++ code for being easily readable by average human developers, ideally being close to plain English. I will revisit best practices on naming, comments, and locality from a modern C++ perspective. Readability also means writing less code and avoiding repetitions and unnecessary noise. I will present practical use cases of modern C++ features that are especially effective to achieve this. I will finish the talk with an overview of new C++17 features aiming at more readable code, such as fold expressions, constexpr-if, and structured bindings.
20:00 // Questions, hand-over, break
20:10 Romain Cheminade (https://www.meetup.com/members/220710921/) << "sync_ptr, pointer chaining and stealing using RAII technique."
Instances management and propagation is challenging.
They involve multiple combined patterns and requires us to keep track of the code managing creation and reclamation of such resources.
Chained references are complex to maintain, update, swap, steal, reclaim.
These operation often require traversals incurring performance penalty.
From abstract to real world example I will present the sync_ptr object I implemented to ease these operation, make them faster, safer.
For those eager to know more, here is the GitHub repo:
https://github.com/romaincheminade/sync_ptr
---
We'll finish around 20:40-20:45 at which point we'll adjourn to the bar/ nearby hostelry for more informal discussion and networking.
About the speakers:
Timur Doumler is currently senior software engineer at London-based music technology company ROLI. There, he works on JUCE, a popular open-source cross-platform C++ framework for developing audio, interactive, embedded and graphic applications. Timur also works on C++ standardisation and likes giving talks at conferences. He is the program chair and co-organiser of the Audio Developer Conference (ADC), the annual gathering of the audio software community.
Romain Cheminade is Lead Software Engineer at Green Hippo, a London-based media server company. He has worked in various fields, from embedded systems to visualization and vfx. He is a tool maker who likes his latency low and his concurrency cooperative.

Readable Modern C++ and sync_ptr