[Issue 2246] New: specialization of template to template containing int arguments fails

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Jul 25 06:30:22 PDT 2008


http://d.puremagic.com/issues/show_bug.cgi?id=2246

           Summary: specialization of template to template containing int
                    arguments fails
           Product: D
           Version: 1.024
          Platform: Macintosh
        OS/Version: Mac OS X
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: fawzi at gmx.ch


{{{
class A(T,d){
    T p;
}

class B(int rk){
    int[rk] p;
}

class C(T,int rk){
    T[rk] p;
}

template f(T:A!(U,d),U,d){
    void f(){ }
}

template f(T:B!(rank),int rank){
    void f(){ }
}

template f(T:C!(U,rank),U,int rank){
    void f(){ }
}

void main(){
    A!(int,long) a;
    B!(2) b;
    C!(int,2) c;
    f!(A!(int,long))();
    f!(B!(2))();
    f!(C!(int,2))();
}
}}}

fails on 
    f!(B!(2))();
and
    f!(C!(int,2))();

{{{
Line 30: template instance f!(B) does not match any template declaration
Line 30: Error: template instance 'f!(B)' is not a variable
Line 30: Error: function expected before (), not f!(B) of type int
}}}

also GDC, and (i suspect) newer DMD releases have this problem 

Fawzi


-- 



More information about the Digitalmars-d-bugs mailing list