cpprussia C++ Russia 2019 SPb (31.10.2019 — 01.11.2019)

Modules: Changes in core language


The talk about modules in C++ and their influence on core language.

Modules are the biggest features of C++. Changes in build tools, package managers, hopes for optimizing compile time, questions of how to better organize code (module per translation unit vs module per library) are hinges on modules.

Being those important high-level things technical details and understanding of what influence modules have on core language are lost. But there is an influence and it’s not small, because if compiler worked with translation units one at a time earlier than with modules the rules of the game has changed.

During this session we will answer questions like:

  • what is a reachable entity and how it differs from visible;

  • how modules affect ADL;

  • can entities with internal linkage leak into other modules;

  • can we import class at the same time as complete and incomplete.

Students are expected to become familiar with the principles of the modules and understanding of why modules are needed.