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...