code: template tct(T1,T2){ string tct = T1.stringof ~ " " ~ T2.stringof ~ typeof(true?T1.init:T2.init).stringof; } pragma(msg, tct!(shared(const(int))*, const(int*))); result: tct why?