digitalmars.D.learn - How to create a function that behaves like std.stdio.writeln but
- JG (18/18) Jan 25 2022 Any ideas how one can achieve what is written in the subject line?
- Dennis (8/10) Jan 25 2022 ```D
- WebFreak001 (4/14) Jan 25 2022 note: default arguments after variadic arguments are supported
- JG (2/12) Jan 25 2022 Thank you very much.
Any ideas how one can achieve what is written in the subject line? f below does achieve this but I one would expect that it produces significant template bloat. g achieves the aim but isn't very elegant. import std; void f(string file=__FILE__,size_t line=__LINE__,R...)(R r) { writeln(file,":",line," ",r); } void g(T)(T t,string file=__FILE__,size_t line=__LINE__) { writeln(file,":",line," ",t.expand); } void main() { f("hello ", 123); g(tuple("hello ",123)); }
Jan 25 2022
On Tuesday, 25 January 2022 at 12:11:01 UTC, JG wrote:Any ideas how one can achieve what is written in the subject line?```D void f(T...)(auto ref T args, string file = __FILE__, int line = __LINE__) { writeln(file, ":", line, ": ", args); } ```
Jan 25 2022
On Tuesday, 25 January 2022 at 12:27:16 UTC, Dennis wrote:On Tuesday, 25 January 2022 at 12:11:01 UTC, JG wrote:note: default arguments after variadic arguments are supported since D 2.079.0: https://dlang.org/changelog/2.079.0.html#default_after_variadicAny ideas how one can achieve what is written in the subject line?```D void f(T...)(auto ref T args, string file = __FILE__, int line = __LINE__) { writeln(file, ":", line, ": ", args); } ```
Jan 25 2022
On Tuesday, 25 January 2022 at 12:27:16 UTC, Dennis wrote:On Tuesday, 25 January 2022 at 12:11:01 UTC, JG wrote:Thank you very much.Any ideas how one can achieve what is written in the subject line?```D void f(T...)(auto ref T args, string file = __FILE__, int line = __LINE__) { writeln(file, ":", line, ": ", args); } ```
Jan 25 2022