Re: самодельные шаблоны для C#
От: Mab Россия http://shade.msu.ru/~mab
Дата: 12.08.05 17:40
Оценка: +1
R1>http://rsdn.ru/File/44751/SharpTemplates.exe
R1>http://rsdn.ru/File/44751/templates_test.txt
Оба файла имеют 0 размер... или может у меня проблемы со скачиванием?

А воообще -- что это такое? В чем преимущество по сравнению с (a) нормальными generics (б) CodeSmith?
самодельные шаблоны для C#
От: R1  
Дата: 12.08.05 17:34
Оценка:
Интересую найденные вами неточности при генерации нового(шаблонизированного) исходника.

пример использования:

//*template<T1,T2>
struct A
{
T1 var1;
T2 var2;

A/*<int,char>*/ self_a;
};

struct B
{
A/*<byte,byte>*/ a1;
A/*<string,string>*/ a1;
};


http://rsdn.ru/File/44751/SharpTemplates.exe
http://rsdn.ru/File/44751/templates_test.txt
Re[2]: самодельные шаблоны для C#
От: R1  
Дата: 13.08.05 12:35
Оценка:
Здравствуйте, Mab, Вы писали:

R1>>http://rsdn.ru/File/44751/SharpTemplates.exe

R1>>http://rsdn.ru/File/44751/templates_test.txt
Mab>Оба файла имеют 0 размер... или может у меня проблемы со скачиванием?

это я когда их заливал не проверил (доступ на чтение закрыт был)

сейчас вроде поправил

Mab>А воообще -- что это такое? В чем преимущество по сравнению с (a) нормальными generics (б) CodeSmith?


это шаблоны как в С++
Re[3]: самодельные шаблоны для C#
От: R1  
Дата: 15.08.05 12:46
Оценка:
насчет полного соответсыия с шаблонами С++ я конечно пощутил

добавил параметры поумолчанию и числовые константы, шаблонные параметры шаблонов, соответствеено изменился способ обьявления шаблона

//*template<class T = DefaultType, int N = integer_constant>


Пример2:

//*template<class T>
struct A
{
T member;
};

//*template<class T = A<int>, int N = 100>
struct S
{
T [] var = new T [N];
};

class C
{
S/*<>*/ def_s;
S/*< A<char>,20>*/ new_s;
};


Mab>>А воообще -- что это такое? В чем преимущество по сравнению с (a) нормальными generics (б) CodeSmith?


в generic кажется нет перечисленных выще возможностей

CodeSmith — не пробовал, но судя по описанию будет несовсем удобно его использовать


http://rsdn.ru/File/44751/SharpTemplates2.exe
http://rsdn.ru/File/44751/test2.txt
Re[4]: самодельные шаблоны для C#
От: dshe  
Дата: 15.08.05 12:54
Оценка:
Здравствуйте, R1, Вы писали:

R1>насчет полного соответсыия с шаблонами С++ я конечно пощутил


R1>добавил параметры поумолчанию и числовые константы, шаблонные параметры шаблонов, соответствеено изменился способ обьявления шаблона


Mab>>>А воообще -- что это такое? В чем преимущество по сравнению с (a) нормальными generics (б) CodeSmith?


R1>в generic кажется нет перечисленных выще возможностей


Ок. А как твои шаблоны использовать? В какой момент происходит инстанцирование шаблона? Как обстоят дела с поддержкой инструментальными средствами?
--
Дмитро
Re[5]: самодельные шаблоны для C#
От: R1  
Дата: 15.08.05 13:21
Оценка:
Здравствуйте, dshe, Вы писали:

D>Ок. А как твои шаблоны использовать?


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

D>В какой момент происходит инстанцирование шаблона?


хм сложно сказать

D>Как обстоят дела с поддержкой инструментальными средствами?


пока никак
Re[6]: самодельные шаблоны для C#
От: R1  
Дата: 20.08.05 18:35
Оценка:
добавленно:
система тестирования
перегрузка шаблонов(ограниченная)

планируется:
еще какойнить выкрутас с шаблонами
добавить в грамматику unsafe code

Сравнить входной и сгенерированный файл
SharpTemplates -testmatch file

Сравнить сгенерированный файл со специально подготовленным файлом (для тестирования шаблонов)
SharpTemplates -testtempl file file_for_compare

также можно использовать следующие параметры
-showinfo показывает дополнительную информацию
-stdout выводит результат в консоль


для обработки нескольких файлов нужно указать их в коммандной строке, будут сгенерированны файлы с темиже именами и расширением .pst

архиве есть тестовые файлы

http://rsdn.ru/File/44751/SharpTemplates.zip

mail_for_rsdn@mail.ru

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