Modules are source code components with a well-defined interface such that they can be reused in other code without requiring knowledge of the implementation or exposing its internals. In this talk, we will discuss how modules can be supported in C++. We will see that for most of its existance, C++ has had to use the "header file plus object files" paradigm inherited from C to support modules, until proper C++-based modules were introduced in the C++20 standard. Unfortunately, few C++ compilers fully support the C++20 modules, and their implementations and usage varies a lot. We will give an overview not only of the issues but also of what is possible with some current compilers.
-------
This webinar was presented by Ramses van Zon (SciNet) on May 1, 2024, as a part of a series of weekly Compute Ontario Colloquia. The webinar was hosted by SciNet. The colloquia cover different advanced research computing (ARC) and high performance computing (HPC) topics, are 45 to 60 minutes in length, and are delivered by experts in the relevant fields. Further details can be found at https://www.computeontario.ca/trainin...