Using Type Erasure to Extend APIs You Don't Own
Details
Sponsor: think-cell (http://think-cell.com)
Streaming Link: There will be no live stream this time :-(
******
This month we have the big pleasure to welcome Jan Wilczek to our user group. Jan is a C++ developer, a conference speaker, and an online course creator from think-cell. His background is in audio plugin and app development. He works from home in Katowice, Poland.
******
Abstract
Application developers sometimes hit a limitation of a 3rd-party library or framework. The Type Erasure design pattern can help us overcome such limitations without the need to change the 3rd-party API.
Type Erasure is a relatively complex design pattern that allows us to treat a set of unrelated classes as if they shared a common base class, while preserving value semantics. The downside is increased code bloat and code complexity as the pattern requires a significant amount of additional code.
There have been quite a few talks explaining HOW to implement Type Erasure, while the topic of WHEN has been rarely discussed. Should we always use type erasure instead of virtual polymorphism? And if not, then what are the criteria?
This talk will show a concrete example from the audio programming industry of how Type Erasure allowed adding new functionalities to the parameter class system of the JUCE C++ framework without changing its API. As such, the talk will be useful for application and library developers who use 3rd party libraries but need an extra degree of flexibility.
You will come out of the talk understanding
- what Type Erasure is,
- when to use it, and
- how to implement it.
You don't need to understand Type Erasure, audio development, or JUCE to attend the talk; the necessary minimum will be explained during the talk.
******
Schedule
18:00 (CET) -- Welcome at Smart Village
18:30 (CET) -- Food and drinks
19:30 (CET) -- Main talk by Greg Law
~20:30 (CET) -- Open discussions
21:00 (CET) -- Official end
