Modules - The Beginner's Guide


Details
This month we have the pleasure to welcome Daniela Engert to our user group. Daniela has worked for 30 years now as a developer in a wide variety of software and hardware projects, mostly in the domain of digital signal processing and its application in areas like signal and communications intelligence, medical imaging, and now industrial non-destructive testing systems for steel goods.
----------------------------------------
Abstract: Modules are one of the big new language additions which will be part of C++20. Seemingly new, modules were actually available for quite a few years in Microsoft's Visual Studio compiler, serving as some form of a reference implementation of the so-called 'Modules TS'. The other root of C++20 modules is the clang compiler, incorporating ideas from engineers (mostly) at Google with their idea of how a implementation of modules should look like. Eventually the developers of gcc also arrived at the party with a fresh look at modules. After joining forces of all three major players, a common vision of a matured specification of modules was agreed on and voted for inclusion into the next C++ standard.
With this piece of history in mind, I invite you to follow my exploration of the modules ecosystem as it exists today:
- in a nutshell, what are modules after all?
- what does a module look like? What are it's basic concepts?
- are there pitfalls using modules?
- how do modules benefit me or my team? Or my users?
- what is the current implementation status in compilers? Are they mature and robust enough for everyday use of modules?
- what do people need to know if they want to start with creating their first module?
- is it worth it to leave the trodden path and introduce modules into codebases?
My efforts and experiences of modularizing the {fmt} library are the basis of the exploration.
----------------------------------------
Agenda:
19:00 -- Welcome with Snacks and Drinks
19:30 -- Welcome at MVTec
19:40 -- Lightning Talk
19:50 -- Main talk by Daniela Engert
~21:00 -- Open Discussions
22:00 -- Official End
----------------------------------------
Sponsor: MVTec (https://www.mvtec.com)

Modules - The Beginner's Guide