On Monday, 18 November 2013 at 20:45:54 UTC, seany wrote:
On Monday, 18 November 2013 at 20:42:36 UTC, Jon wrote:
On Monday, 18 November 2013 at 20:20:38 UTC, seany wrote:
I read that book, but dont find this constructtion, that is
why the question.
Seany, you are on the right track for the function
declaration, I think the following code does what you are
looking for:
import std.stdio;
void main() {
int[4] myArray;
assign(myArray, 5);
writeln(myArray); //prints [5, 5, 5, 5]
}
void assign(T)(T[] arr, T val)
{
for(int i = 0; i < arr.length; i++)
{
arr[i] = val;
}
}
D is great because the template system infers what type you
are passing without having to explicitly instantiate the
template first, i.e. assign!(int)(myArray, 5).
thank you, precisely this is what i was looking for, any
peculiar pitfalls to be aware of?
With this particular usage, it should work the way you expect.
Things can get a little hairy when you are trying to do more
complicated compile-time checking and things like that.
Philippe's guide and the D Language Reference should get you
through 99% of any issues you face, but sometimes it takes a lot
of trial and error!
-Jon