Dnia 31-01-2010 o 19:49:44 daoryn <ma...@fots.po> napisał(a):

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]);
}

I'd say it should be more like:

// specialization needed to limit matching types
void print(T:int)(T thing)
{
        writeln("Calling print(T)");
        writeln(T.stringof);
}

// T is an array of any Us.
void print(T:U[], U)(T things)
{
        writeln("Calling print(T[])");
        writeln(T.stringof);
}


Tomek

Reply via email to