On Saturday, 28 December 2013 at 02:27:00 UTC, Ross Hays wrote:
import std.stdio;

void test(T)()
        if (is (T : float))
{
        writeln(typeid(T));
}

void main()
{
        test!int;
}

When I run this I am getting the output "int"
My understanding of template constraints is that the call to test!int will not find a match since the function test only accepts float as a template parameter. I just ran into this problem while trying to understand something unrelated.

Okay figured it out actually. If you are not going to allow implicit conversion the appropriate constraint is...

if (is (T == float))

I said it last time I asked about is and I will say it again. It is such a weird syntax...

Reply via email to