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

          Issue ID: 16707
           Summary: [Templates] run variadic templates example failed
           Product: D
           Version: D2
          Hardware: All
               URL: http://dlang.org/
                OS: All
            Status: NEW
          Severity: normal
          Priority: P3
         Component: dlang.org
          Assignee: nob...@puremagic.com
          Reporter: panme...@gmail.com

Hi, I am very new to dlang, the following example can't be compiled, my dmd
version is "DMD32 D Compiler v2.072.0".

https://dlang.org/spec/template.html#variadic-templates

template print(args...)
{
    void print()
    {
        writeln("args are ", args); // args is a ValueSeq
    }
}

template write(Args...)
{
    void write(Args args) // Args is a TypeSeq
                          // args is a ValueSeq
    {
        writeln("args are ", args);
    }
}

void main()
{
    print!(1,'a',6.8).print();                    // prints: args are 1a6.8
    write!(int, char, double).write(1, 'a', 6.8); // prints: args are 1a6.8
}

app.d(31): Error: template app.print cannot deduce function from argument types
!()(void), candidates are:
app.d(11):        app.print(args...)()
app.d(32): Error: function app.write!(int, char, double).write (int _param_0,
char _param_1, double _param_2) isnot callable using argument types ()

--

Reply via email to