I have some code from a couple of years ago that I'm trying to update to modern D.
I was first using the gdc compiler in debian stable which seems based on DMD 2.055 but that caused somthing that looks like memmory coruption. Using the newer gdc compiler in debian sid (based on DMD 2.062 i think) I run into this error instead. util.d:23: Error: alias util.foreachType!(uint[4LU][4LU]).foreachType recursive alias declaration This is for code that have worked previously looking like this template foreachType(T) { static if(is(opApplyType!(T) V)) { static if(is(opApplyType!(V[$-1]))) alias Tuple!(V[0..$-1],foreachType!(V[$-1])) foreachType; else alias V foreachType; } else { pragma(msg,"Failed to resolve type "); static assert(0,opApplyType!(T)); } } I can post all the source code if anyone is interested What my ultimate goal is is to resurect my opApplyN function allowing me to do things like this uint[4][4] block; foreach(x,y,v;opApplyN(block)) printf("%d %d %d\n",x,y,v); If anyone know a more convinient way to achive that that would be helpfull as well.