Template argument deduction is too strict

Lars Kyllingstad public at kyllingen.NOSPAMnet
Wed Oct 22 00:20:49 PDT 2008


Walter Bright wrote:
> Lars Kyllingstad wrote:
>> The function template
>>     void foo(A)(A a, real b) { ... }
>> is matched by
>>     foo(1, 1.0L);
>> but not by
>>     foo(1, 1.0);
>> since the second argument is a double literal.
>>
>> I think the latter should also work, since it would work for a 
>> non-templated function. Don't you agree? :)
>>
>> I am using D1, by the way. Is it the same in D2?
> 
> The code:
> 
> void foo(A)(A a, real b) {  }
> 
> void test()
> {
>     foo(1, 1.0);
> }
> 
> compiles with both D1 and D2.

Ok, must be that I'm using an outdated compiler, then. I am using 64-bit 
Linux, so I have to use GDC. (Right?)

-Lars



More information about the Digitalmars-d mailing list