Модули: изменения в core language

RU / День 2 / 14:30 / Зал 2

Модули — крупнейшая фича C++. На ней завязаны изменения в build tools, package managers, надежды на оптимизацию времени компиляции, вопросы того, как лучше организовывать код (module per translation unit vs module per library).

За всеми этими важнейшими высокоуровневыми вещами теряются технические подробности, понимание того, какое влияние оказывают модули на core language. А оно есть, и не маленькое, ведь если раньше компилятор работал с единицами трансляции по одной, то с появлением модулей правила игры поменялись.

В рамках доклада мы ответим на следующие вопросы:

  • что такое reachable entity и чем это отличается от visible;
  • как модули влияют на ADL;
  • могут ли entities с internal linkage протечь в другой модуль;
  • может ли импортировать класс одновременно как complete, и как incomplete;
  • что будет с inline-функциями в модульном мире.

От слушателей ожидается общее знакомство с принципами работы модулей, и понимание зачем модули вообще нужны.