четверг, 9 февраля 2012 г.

[prog] Интересный документ: A tutorial on D templates

Язык D, не смотря на то, что никак не может стабилизироваться, имеет несколько интересных особенностей. Самая важная из которых, пожалуй, система шаблонов. Не могу сравнить шаблоны D1/D2 с C++11, но вот то, что D-шные шаблоны да еще в сочетании со static if мощнее тех, которые в C++03 – это точно.

Сегодня узнал о существовании проекта по написанию руководства по использованию D-шных шаблонов: https://github.com/PhilippeSigaud/D-templates-tutorial

Всем интересующихся смело рекомендую. Просмотрел по диагонали тамошнюю PDF-ку – внушаить, даже самому захотелось прочитать (но вряд ли, однако, найду время).

6 комментариев:

Rustam комментирует...

D'шные мощней конечно чем C++11 без вопросов, особенно учитывая CTFE который заменяет во многих случаях шаблоны, притом вместо маловразумительного метапрограммирования на шаблонах получается обычная функция, написанная на том же D. При этом constexpr из C++11 аналогично слишком убог по сравнению с CTFE из D.

eao197 комментирует...

@Rustam:

Наверняка так и есть. Просто я пока еще C++11 не смотрел, т.к. на работе пока еще не переходим на новые версии C++ компиляторов, в которых часть вкусностей из C++11 уже есть, работаем еще на старых. Когда будем обновляться, тогда и буду изучать.

имя комментирует...

кстати, они там в CTFE утечку памяти пофиксили уже?

eao197 комментирует...

@имя:

Без понятия, самим языком D я уже давно не пользуюсь.

имя комментирует...

я думал рустам ответит, он вроде следит за Д

там было дело при вычислении CTFE не удалялась память из под использованных выражений, т.е. цикл вида "к строке прибавляем по букве" держал все старые версии строк в памяти

Rustam комментирует...

@имя

Я скорее не слежу за D а так одним глазом посматриваю. К сожалению для серьезной работы он пока не годен. А про этот баг узнал от тебя, судя по описанию он не очень серъезный и не влияет на генерируемый код.