Re: Специализация шаблонов
От: hardcase Пират http://nemerle.org
Дата: 05.04.10 07:29
Оценка:
Здравствуйте, evilbeaver, Вы писали:

E>Нубский вопрос.

E>Есть ли в Nemerle некое подобие специализации шаблонов C++ или возможность это красиво реализовать?

E>Приведу пример. Есть некий дженерик ISome['a]. Он вызывается из дженерикового же метода method['a](). В частных реализациях ISome['a] (например для int) есть отличительные особенности. Сейчас приходится использовать наследование и фабрики для выбора нужного типа из иерархии.


Все упирается в систему типов .NET, которая не предусматривает создание частных реализаций генериков, поэтому в общем виде решить задачу не выйдет.


E>Если шаблоны отсутствуют, то мне в голову приходит только один вариант:

E>При компиляции искать все места типа ISome[some_type](), смотреть есть ли в иерархии типов специализированный дженерик для данного типа some_type, и если он находится — то подставлять его вместо исходного.

В этом случае гораздо проще будет сделать макрос-фабрику, но от наследования уйти не получится.
/* иЗвиНите зА неРовнЫй поЧерК */
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.