> Что это костыль - согласен (правда, почти современные компиляторы знают про "#pragma
> once", но это всё же не так портабельно). Но речь была
> о производительности.Нет, речь была о скорости. Причем о скорости компиляции, а не только скорости исполнения. Она тоже важна.
> Не понял насчёт удаления-добавления строчек. Если имеется в виду многократное включение
> заголовочного файла, то таки это фича, которой в D нет. :)
> Если же имеется в виду, что import не пересчитывает заново все
> исходники, так и ccache никто не отменял... Да, это отдельная от
> языка сущность, но по факту результат сравнимый. :)
Имеется в виду следущее: #include в файле подобен %s в строке для форматирования. Когда в строке встречается что-то вроде "текст %s еще текст %s снова текст", магического раздвигания строки не будет. Вместо этого будет создана новая строка, в которую кропотливо будет вставляться искомая строчка по кускам. Это не быстро. И тут хоть ccache, хоть не ccache — работа со строками при использовании препроцессора неизбежна.
> Повторюсь, я не против этих возможностей. Всего лишь говорю, что на производительность
> реального продукта, который делается реальными инструментами, они не особо влияют.
А при чем тут производительность реального (то бишь уже готового) продукта? Она-то как раз отличаться не будет, ибо, собственно, все оптимизации и в плюсах, и в Ди одинаковые, нового никто ничего не придумал (а если кто придумал, это сразу же повторили остальные). Речь ведь шла о скорости компиляции, а на неё как раз наличие/отсутствие препроцессора влияет.