[Issue 16345] New: lazy variadic function in template with default value cannot be deduced

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Mon Aug 1 02:12:44 PDT 2016


https://issues.dlang.org/show_bug.cgi?id=16345

          Issue ID: 16345
           Summary: lazy variadic function in template with default value
                    cannot be deduced
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: minor
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: kroeplin.d at googlemail.com

The following code does not compile:

void all(string file = __FILE__, size_t line = __LINE__)(void delegate()[] dgs
...)
{
    foreach (dg; dgs)
    {
        dg();
    }
}

void main()
{
    all(
        assert(true),
    );
}

Error: template all cannot deduce function from argument types !()(void),
candidates are:
       all(string file = __FILE__, ulong line = __LINE__)(void delegate()[]
dgs...)

Workaround: call `all!()(...)` instead of `all(...)`.

--


More information about the Digitalmars-d-bugs mailing list