Discussion Thread: DIP 1036--Formatted String Tuple Literals--Community Review Round 1
Adam D. Ruppe
destructionator at gmail.com
Sat Sep 12 02:48:38 UTC 2020
On Friday, 11 September 2020 at 20:46:05 UTC, Paul Backus wrote:
> This solves the issue of accidentally passing the wrong thing
> with i"Window $id", and also prevents non-interpolation-related
> accidental usage, like mixing up the width and height.
yeah that's legit.
So what we're considering is simplifying it a bit and dropping
the embeddable format strings. Also Steven is seeing if he can
make auto-conversion work and I'm mulling over your idea of two
different prefixes. t"..." yields the tuple, i"..." automatically
calls idup (or whatever). t is the building block, i is the "just
give me a string" shortcut built on top of t.
So in my next draft, processing a t"" yourself looks like:
auto foo(InterpList, Args...)(InterpList interp, Args args) {
string ret;
foreach(idx, arg; args) {
ret ~= interp.strings[idx];
ret ~= to!string(arg);
}
ret ~= interp.strings[args.length];
return ret;
}
And processing an i"" is trivial; it is just either a string or a
subclass of string (aka a struct with alias toString this) and
you'd just use it like that.
The t"" is more composable; it is the superior language feature.
But I can live with a convenience compromise.
So we'll see.
More information about the Digitalmars-d
mailing list