мы можем весь код помещать в .cppm - module interface units? Просто не будем экспортить то, что клиентам не интересно. И ничто не мешает нам начать думать в модели того же C#, где никто не разделяет по разным файлам объявления и определения.
Как тогда без разделения спрятать от клиентов реализацию? Скомпиленный файл модуля нельзя распространять
Правильно. Но в C# минимальная единица компиляции assembly и их это устраивает по скорости, и в C++ придется после каждого изменения (в т.ч. имлементации) перекомпилировать существенно больше одного translation unit-а.
Обсуждают сегодня