Здравствуйте, evilbeaver, Вы писали:
E>Нубский вопрос. E>Есть ли в Nemerle некое подобие специализации шаблонов C++ или возможность это красиво реализовать?
E>Приведу пример. Есть некий дженерик ISome['a]. Он вызывается из дженерикового же метода method['a](). В частных реализациях ISome['a] (например для int) есть отличительные особенности. Сейчас приходится использовать наследование и фабрики для выбора нужного типа из иерархии.
Все упирается в систему типов .NET, которая не предусматривает создание частных реализаций генериков, поэтому в общем виде решить задачу не выйдет.
E>Если шаблоны отсутствуют, то мне в голову приходит только один вариант: E>При компиляции искать все места типа ISome[some_type](), смотреть есть ли в иерархии типов специализированный дженерик для данного типа some_type, и если он находится — то подставлять его вместо исходного.
В этом случае гораздо проще будет сделать макрос-фабрику, но от наследования уйти не получится.