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 ()
Should be void main() { print!(1,'a',6.8)(); // prints: args are 1a6.8 write!(int, char, double)(1, 'a', 6.8); // prints: args are 1a6.8 }
@AndreeaDrehuta created dlang/dlang.org pull request #3516 "Fix issue 16707" fixing this issue: - Fix issue 16707 https://github.com/dlang/dlang.org/pull/3516
dlang/dlang.org pull request #3516 "Fix issue 16707" was merged into master: - 8f33642546b9163478e56d5f6a49ef8fbaae6015 by Drehuta Andreea: Fix issue 16707 https://github.com/dlang/dlang.org/pull/3516