Should be easy

Christopher Wright dhasenan at gmail.com
Fri Jun 12 15:48:58 PDT 2009


Saaa wrote:
> I can't figure out how to create the IndexArray function,
> it should work on arrays of any depth

BaseType!(TArray) index(TArray : TArray[])(TArray array, int[] indices...)
{
	return index(array[indices[0]], indices[1..$]);
}

TElement index(TElement)(TElement element, int[] ignored...)
{
	return element;
}

This uses template specialization to handle arrays differently than 
non-arrays (that's what the "TArray : TArray[]" business means). It uses 
the BaseType template worked out in one of your previous threads. It's 
close enough to being the simplest thing that could work that I wouldn't 
bother looking for anything simpler.


More information about the Digitalmars-d-learn mailing list