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