R1>http://rsdn.ru/File/44751/SharpTemplates.exe
R1>http://rsdn.ru/File/44751/templates_test.txt
Оба файла имеют 0 размер... или может у меня проблемы со скачиванием?
А воообще -- что это такое? В чем преимущество по сравнению с (a) нормальными generics (б) CodeSmith?
Интересую найденные вами неточности при генерации нового(шаблонизированного) исходника.
пример использования:
//*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
Здравствуйте, Mab, Вы писали:
R1>>http://rsdn.ru/File/44751/SharpTemplates.exe
R1>>http://rsdn.ru/File/44751/templates_test.txt
Mab>Оба файла имеют 0 размер... или может у меня проблемы со скачиванием?
это я когда их заливал не проверил (доступ на чтение закрыт был)
сейчас вроде поправил
Mab>А воообще -- что это такое? В чем преимущество по сравнению с (a) нормальными generics (б) CodeSmith?
это шаблоны как в С++
насчет полного соответсыия с шаблонами С++ я конечно пощутил
добавил параметры поумолчанию и числовые константы, шаблонные параметры шаблонов, соответствеено изменился способ обьявления шаблона
//*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
Здравствуйте, R1, Вы писали:
R1>насчет полного соответсыия с шаблонами С++ я конечно пощутил
R1>добавил параметры поумолчанию и числовые константы, шаблонные параметры шаблонов, соответствеено изменился способ обьявления шаблона
Mab>>>А воообще -- что это такое? В чем преимущество по сравнению с (a) нормальными generics (б) CodeSmith?
R1>в generic кажется нет перечисленных выще возможностей
Ок. А как твои шаблоны использовать? В какой момент происходит инстанцирование шаблона? Как обстоят дела с поддержкой инструментальными средствами?
Здравствуйте, dshe, Вы писали:
D>Ок. А как твои шаблоны использовать?
синтаксис я уже описывал, на выходе получается исходный код для компиляции
(для использования в ескольких модулях нужно будет указать в коммандной сторке список исходных файлов которые будут преобразованны)
D>В какой момент происходит инстанцирование шаблона?
хм сложно сказать
D>Как обстоят дела с поддержкой инструментальными средствами?
пока никак
добавленно:
система тестирования
перегрузка шаблонов(ограниченная)
планируется:
еще какойнить выкрутас с шаблонами

добавить в грамматику 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
Буду рад если пришлете мне тесты на которых программа обламывается