Why does this template constraint not work?
Ross Hays
accounts at rosshays.net
Fri Dec 27 18:31:56 PST 2013
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...
More information about the Digitalmars-d-learn
mailing list