import std.stdio;

void transmogrify(uint value)
{
    writeln("Вызов функции с uint: ", value);
}

void transmogrify(long value)
{
    writeln("Вызов функции с long: ", value);
}

void transmogrify(T)(T value)
{
    writeln("Вызов функции с T: ", value);
}

unittest
{
    transmogrify(42);       // Вы­зы­ва­ет transmogrify(uint)
    transmogrify("hello");  // Вы­зы­ва­ет transmogrify(T), T=string
    transmogrify(1.1);      // Вы­зы­ва­ет transmogrify(T), T=double

    // Вызов функции с uint: 42
    // Вызов функции с T: hello
    // Вызов функции с T: 1.1
}
