T... args!

Salih Dincer salihdb at hotmail.com
Fri Apr 29 16:10:52 UTC 2022


On Friday, 29 April 2022 at 12:57:15 UTC, Steven Schveighoffer 
wrote:
> There is no string interpolation in D. You can use a function 
> such as `std.conv.text` to produce a string given interleaving 
> strings and items. Or you can use `std.format.format` to make 
> it happen.

I see, think it can be done with mixin:
```d
template prn(alias args)
{
   string prn()
   {
     string result = "write(";
     foreach(s; args.split("|"))
     {
       result ~= format("%s,", s);
     }
     return result ~ ");";
   }
}

void main()
{
   int data = 456;
   char enter = '\n';

   mixin(prn!q{
     enter| 123 | " str " |  data |

     enter|    __TIME__   | enter }
   );

   mixin(
     prn!q{"This value of " |41| " is prime."}
   );
}
```

If there was some convenience on the compiler side, we could 
integrate it into D.

SDB at 79


More information about the Digitalmars-d-learn mailing list