LINUX.ORG.RU

История изменений

Исправление hobbit, (текущая версия) :

Я думаю, что основное время компиляции уходит на шаблоны, если самая примитивная программа компилится секунд 30.

IMHO, это не из-за шаблонов, а из-за отсутствия модульности. В плюсах, как и в б-жественной сишечке, до сих пор вместо модулей костыли на препроцессоре из начала 70-х. Препроцессор делает кучу портянок текста, компилятор компилирует каждую из этих портянок в объектник с кучей неразрешённых зависимостей. и наконец, линкер все эти зависимости разрешает. Методом грубого тыка. С тем, что там было в заголовочных файлах, это разрешение никак не связано.

Даже в примитивном по современным меркам Турбо Паскале образца 1990 года были нормальные модули с явным заданием, что откуда импортируется.

В последнем стандарте плюсов модули, наконец, продавили, но думаю, что захватывать мир они будут ещё лет 10, если не больше. Унаследованный код — это не шутка.

А precompiled headers — это тоже костыли ещё те.

Исходная версия hobbit, :

Я думаю, что основное время компиляции уходит на шаблоны, если самая примитивная программа компилится секунд 30.

IMHO, это не из-за шаблонов, а из-за отсутствия модульности. В плюсах, как и в б-жественной сишечке, до сих пор вместо модулей костыли на препроцессоре из начала 70-х. Препроцессор делает кучу портянок текста, компилятор компилирует каждую из этих портянок в объектник с кучей неразрешённых зависимостей. и наконец, линкер все эти зависимости разрешает. Методом грубого тыка. С тем, что там было в заголовочных файлах, это разрешение никак не связано.

Даже в примитивном по современным меркам Турбо Паскале образца 1990 года были нормальные модули с явным заданием, что откуда импортируется.

В последнем стандарте плюсов модули, наконец, продавили, но думаю, что захватывать мир они будут ещё лет 10, если не больше. Унаследованный код — это не шутка.