Re[6]: Facebook и язык D - первый шаг наверх.
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 22.10.13 03:05
Оценка: 8 (2) +1
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>void sort(RandomAccessRange &x)

EP>void sort(BidirectionalRange &x)
EP>Это шаблоны функций, перегрузка между которыми происходит автоматом. Требования каждой концепции разбиваются компилятором на атомы, и производится тест вложенности множеств и т.п.

Перегрузка таких шаблонов в D есть, но, насколько я помню, без такого теста вложенности, последовательная, т.к. в условиях может выполняться почти произвольный код, они намного больше всего могут тестировать, поэтому такую проверку "вложенности множеств" провести нереально, она возможна лишь для сильно примитивных условий, которые и обещают в С++.
Вот такой пример на С++ как записывается?
http://thedeemon.livejournal.com/53900.html
(проверка переданного шаблона на выполнение аксиом функтора в категории)

EP>Итераторы C++ обеспечивают эффективную композицию. Если у нас есть 4 итератора, то из них можно получить 6 range бесплатно, без runtime penalty — просто выбери нужную пару итераторов.


Хороший пример, спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.