I have found one bad looking solution :-) template IsFoo(alias S) { enum bool IsFoo = __traits(compiles, { void isf(T...)(Foo!T){} isf(S.init); }); } Bye, bearophile