c ++ 20 представляет модули в качестве значительного улучшения по сравнению с традиционной файловой системой заголовка и директивой #include . В то время как новый оператор Import предназначен для замены #include В большинстве случаев я пытаюсь полностью понять основные различия и приносящие модули преимуществ. Тем не менее, я изо всех сил пытаюсь понять более тонкие точки.
: текстовое включение файлов заголовка. Препроцессор непосредственно вставляет содержимое файла заголовка в исходный файл. < /Li>
[*]
[/b]: импортирует интерфейсы предварительно скомпилированных модулей, предоставляя более надежный и эффективный механизм повторного использования кода.
Модули избегайте загрязнения макроса и именных столкновений, явно контролируя то, что экспортируется. />
За пределами скорости компиляции, каковы основные различия в том, как импорт и #include работают под капотом? Я ищу более глубокое понимание технических механизмов в игре. Например, создает ли Import отдельный компиляционный блок, и если да, то как связаны эти блоки?
Подробнее здесь:
https://stackoverflow.com/questions/796 ... -and-advan