Is it possible to create template parameters in the D language? template <template <class T> class T> class N; I think this would be the most obvious syntax, but it doesn't seem to work: template temp(template T(T1)){ } My second question, is it possible to specialize by template arguments? template temp(T : T!(T1 : int))