dmd 2.012 The following code should compile just fine. Instead, the 2nd static assert() fails. BEGIN CODE template foo(TPL...) { static if( is(typeof(&TPL[0]) Tignored1 == void function(T), T) ) static assert(is(T == int)); static if( is(typeof(&TPL[0]) Tignored2 == void function(ARGS), ARGS...) ) static assert(ARGS.length > 0); } void bar(int i) {}; alias foo!(bar) baz; END CODE
Works now, probably fixed years ago.