[Issue 15352] New: template arguments matching error with delegates
    via Digitalmars-d-bugs 
    digitalmars-d-bugs at puremagic.com
       
    Tue Nov 17 07:03:54 PST 2015
    
    
  
https://issues.dlang.org/show_bug.cgi?id=15352
          Issue ID: 15352
           Summary: template arguments matching error with delegates
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: incsall at gmail.com
struct S(T, T delegate(uint idx) supplier)
{
}
auto make1(T, T delegate(uint idx) supplier)()
{
    enum local = supplier; // allows to avoid an error
    S!(T, local) ret;
    return ret;
}
auto make2(T, T delegate(uint idx) supplier)()
{
    S!(T, supplier) ret; // Error: template instance S!(uint, __dgliteral1)
does not match template declaration S(T, uint delegate(uint idx) supplier)
    return ret;
}
unittest
{
    enum dg = delegate(uint idx) => idx;
    S!(uint, dg) s;
    auto v = make1!(uint, dg)();
    v = make2!(uint, dg)(); // throws compilation error
}
DMD32 D Compiler v2.069.0
--
    
    
More information about the Digitalmars-d-bugs
mailing list