Вот код, который я использую:
Type GetNullableType(Type type) {
// Use Nullable.GetUnderlyingType() to remove the Nullable<T> wrapper if type is already nullable.
type = Nullable.GetUnderlyingType(type) ?? type; // avoid type becoming null
if (type.IsValueType)
return typeof(Nullable<>).MakeGenericType(type);
else
return type;
}
Недавно я взглянул на следующее:
Прочтите хорошо :)
Есть действительно хорошая книга по использованию процессора шаблонов C ++:
Андрей Александреску Современный дизайн на C ++ Общее программирование и дизайн Прикладные узоры Аддисон-Уэсли, США, 2001 ISBN 0-201-70431-5
Андрей начинает писать программы с использованием шаблонов C ++!