Bristol Meetups

Why and How to Roll Your Own std::function Implementation with Tom Poole

Please join us, as we are treated to a talk Tom Poole who will be doing a dry-run of his CppCon talk entitled: Why and How to Roll Your Own std::function Implementation.

There will of course be the traditional trip to the pub to follow, where the discussion will continue.

Talk Synopsis:

In recent years the increased usage of std::function has transformed the way many C++ programs are written. However, if your application is processing realtime data, or doing some other performance critical task, then the possibility of std::function allocating some memory from the heap may not be tolerable. It's also possible that the systems you are targeting simply lack a std::function implementation, preventing its adoption in applications for legacy operating systems, toolchains for embedded devices, and inside open source library code. Rolling your own implementation of std::function can provide a solution to both of these concerns simultaneously, allowing you to modernize your code and provide guarantees about the runtime performance of manipulating function objects.

This presentation outlines why and how a std::function replacement was added to the JUCE open source, cross platform, software development framework and discusses some differences between our implementation and others. We will also cover how we can move beyond the standard interface by extending the small buffer optimization to make manipulating callable objects more suitable for performance critical and realtime contexts, finishing with some examples of how this applies to processing live audio data.

Speaker Bio:

Tom Poole (PhD) is a senior software engineer at ROLI Ltd. and a maintainer of the JUCE open source, cross platform, C++ framework (https://juce.com).

Before joining ROLI, he completed his PhD at Imperial College London, developing massively parallel Quantum Monte Carlo algorithms, and simultaneously founded two successful startups, one in big data news aggregation and another in audio processing plug-ins.

Tom is a regular speaker and/or workshop leader at the C++ audio developer conference ADC.