www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 2579] New: Template function accepting a delegate with in argument doesn't compile

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

           Summary: Template function accepting a delegate with in argument
                    doesn't compile
           Product: D
           Version: 2.023
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: snake.scaly gmail.com


The following code:

void foo(T)(T delegate(in Object) dlg)
{
}

void bar()
{
  foo( (in Object) { return 15; } );
}

does not compile:

 dmd -c bug_template_in.d

function template declaration bug_template_in.d(7): template bug_template_in.foo(T) cannot deduce template function from argument types !()(int delegate(const(Object) _param_0)) Replacing both instances of 'in Object' with 'const(Object)' makes the code compile. I think these two forms are equivalent and should both compile. --
Jan 10 2009