Skip to content

Details

This month we are privileged to welcome another overseas visitor: Odin Holmes. We also welcome back C++::London regular, Vittorio Romeo.

****

As ever, please also register on the SkillsMatter page

****

Agenda:

18:30 Pre-session networking/ drinks and getting that good seat at the front

19:00 Phil Nash << "Hello, World";

Brief intro and JetBrains license raffle."

19:10 Vittorio Romeo << "Zero-allocation continuations";

This talk shows an alternative design for future-like continuations that doesn't require any dynamic allocation or type-erasure, while still enabling users to build chains of parallel computations with intuitive constructs such as `.then(...)` and `when_all(...)`. The idea is to encode every step of the computation chain in the type of a final object, resulting in a very long type that represent the whole tree.

19:40 co_return;

A brief break while we change over speakers.

19:50 Odin Holmes << "Agent based class design, C++ with a robot glue gun";

Abstracting a set of functionalities into a class which provides a higher level interface often requires tough design decisions. Users who do not have the exact requirements for which the abstraction is optimized will suffer a syntactic or run time overhead as a result. Alexandrescu's famous "policy-based design" provides a mechanism to allow the user to extend and customize an existing abstraction in order to fine-tune its functionality for many different use cases. This is however limited to use cases where each policy more or less represents a compile time strategy pattern.

Alas, not everything is a strategy pattern. In this talk I will explore the viability of a more agent-pattern-like paradigm where each policy knows its requirements and publishes its capabilities. In this paradigm, glue code connecting any valid set of policies is automatically generated using template metaprogramming. This allows much more powerful customizations while maintaining static linkage.

Members are also interested in