IFTI Bug
    Kirk McDonald 
    kirklin.mcdonald at gmail.com
       
    Sun Jul  9 22:10:44 PDT 2006
    
    
  
Kramer wrote:
> I imagine this should work.  The factorial code is straight from the docs.
> 
> import std.stdio;
> 
> void main()
> {
>     writefln(factorial(2));
> }
> 
> template factorial(int n)
> {
>   static if (n == 1)
>     const factorial = 1;
>   else
>     const factorial = n * factorial!(n-1);
> }
> 
> C:\code\d\src>dmd template_ex_1.d
> template_ex_1.d(8): template template_ex_1.factorial(int n) is not a 
> function template
> template_ex_1.d(5): template template_ex_1.factorial(int n) cannot 
> deduce template function from argument types (int)
> 
> -Kramer
You need to instantiate the template with a bang:
void main() {
     writefln(factorial!(2));
}
IFTI only applies to function templates, which this is not.
-- 
Kirk McDonald
Pyd: Wrapping Python with D
http://dsource.org/projects/pyd/wiki
    
    
More information about the Digitalmars-d-bugs
mailing list