According to http://digitalmars.com/d/2.0/template.html it is possible to
specify template specialization so that DMD prefers them when instanciating
templates, however the following code:
---------------------------------
import std.stdio;
void print(T)(T thing)
{
writeln("Calling print(T)");
writeln(T.stringof);
}
void print(T:T[])(T[] things)
{
writeln("Calling print(T[])");
writeln(T.stringof);
}
void main()
{
print(3);
print([1,2,3]);
}
-----------------------------------------
will output:
Calling print(T)
int
Calling print(T)
int[3u]
I expected it to output "calling print(T[])" on the second "print". Would this
be a bug or did I misunderstand the template specialization?