У меня не так много информации, но определение типов должно работать только на типах Clr. Общие классы, может быть, но шаблонные классы не могут быть typedefed. Также среди нативных типов, только те, которые являются общими (слово «общий» может быть здесь неправильным.) Для .net, то есть double, int, char, Char * (не char *) и т. Д.
Этот код работает и вводит «новый» тип в clr.
namespace example
{
#ifdef _WIN64
typedef sizeT UInt64
#else
typedef sizeT UInt32
#endif
}
Теперь у вас есть size_t .Net, размер которого зависит от платформы.