Я изучаю процесс компиляции C ++.Читая этот пост , я начал копать глубже.Во-первых, препроцессор выполняет свою работу, и он разрешает все директивы препроцессора.В моей реализации g ++ (GNU) #import <iostream>
расширен до 18 тыс. Строк исходного кода.
Тем не менее, вышеупомянутый пост переходит к объяснению процесса синтаксической проверки C ++, то есть стадии компиляции, которая переводитчистый код C ++ для архитектурно-зависимого ассемблера.
Однако до этого шага перевода я все еще вижу много шаблонных определений.Есть ли шаг до перевода в сборку, в котором создаются все шаблоны?
Я знаю, что могу поручить g ++ выполнять только предварительную обработку (опция -E), но могу ли я затем проинструктировать g ++взять чистый файл C ++ без каких-либо директив предварительной обработки и создать файл C ++ со всеми разрешенными шаблонами?