Для: kaban2007
Чтобы прояснить ситуацию с typedef и шаблонами:
В C++ типы - это некомпилируемые вещи. Пользователь класса получает набор сваленных в кучу функций и текстовый файл с описанием типов. Т.е. пользователь класса вынужден использовать или С/C++, или язык, знающий о существовании C/С++. Во втором случае ему придется заново описать типы на новом языке.
В С#, и других языках .NET, типы - копилируемые вещи. Typedef - чисто синтаксическая фишка, то откомпилировать ее не получается - нельзя подобрать полный аналог в других языках. Распространять вместе с dll текстовый файл с typedef-ами - тоже неприемлимо. Единственное, что можно сделать - позволить пользователю определять алиасы в пределах файла.