Should be easy

Christopher Wright dhasenan at gmail.com
Sat Jun 13 05:38:44 PDT 2009


Saaa wrote:
> I did get it to compile at one time, but didn't know how to use it,
> like your code..
> index( array, index2);  //compiles and all, but how do I set the value?
> index( array, index2) = -1; // doesn't work

If you're using d2, add 'ref' to the return type.

Otherwise, you need indexAssign:

void indexAssign(TArray : TArray[])(TArray array, BaseType!(TArray) 
value, int[] indices...)
{
	static if (is (typeof (array[0]) == typeof(value))
	{
		array[indices[0]] = value;
	}
	else
	{
		indexAssign(array[indices[0]], value, indices[1..$]);
	}
}

> Also, why the ... ?

In case you know the number of indices ahead of time. It costs nothing 
and lets you use a more natural syntax some of the time.


More information about the Digitalmars-d-learn mailing list