Здравствуйте, Sinclair, Вы писали:
S>парни в Dart потратили несколько лет на эксперименты. Если они видят, что компиляция выезжает дорогая — значит, для них так и есть.
Вопрос в том, какую компиляцию считать "дорогОй". При компиляции больших текстов на C++, активно использующих шаблонную магию (которую неявно используют многие шаблоны std), количество создаваемых этими шаблонами вспомогательных классов/шаблонов может достигать тысяч и десятков тысяч. При вложении этих конструкций друг в друга количество этих сугубо мусорных объектов растет в геометрической прогрессии. Я не изучал предметно эти зависимости, но жалоб на "очень медленную компиляцию" полно, а ведь в популярных компиляторах обработка этих конструкций наверняка неплохо оптимизирована.
S>Хотя С++ практически целенаправленно организован так, что в нём невозможно сделать эффективную компиляцию.
Да можно, почему нет. Но тогда нужно прекратить вынос конструкций, генерирующих исполняемый код, в заголовки, включаемые множеством разных файлов. А это повлечет ухудшение оптимизации кода. Какую-то оптимизацию нынче делают линкеры, их возможности далеки от компиляторских.
S> Но всякие SFINAE выглядят как неизбегаемые грабли, заложенные с самого начала.
Ну да, без них же не будет работать магия.