On Thursday, 27 February 2020 at 09:34:23 UTC, Walter Bright
wrote:
On 2/26/2020 7:41 AM, Arine wrote:
Yah, what's unwanted about that?
1. unwanted extra string allocation
2. poor performance
3. doesn't work with printf
4. doesn't work with writef
5. non-default formats require extra temp strings to be
generated
Pretty sure he meant that this call:
int a;
CreateWindow(i"Title $a");
Would call CreateWindow like:
CreateWindow("Title %s", a);
Which is what is unwanted.
Btw: with the adam-steve-twist you fix everything that is
unwanted, including enforcing explicitness when someone wants it
to act as a string, without the danger of mistakenly calling the
wrong overloads of functions because of switching to string
interpolation.
And it seems to me there's precedent in typeid
i.e. typeid is an construct in D that lowers to a TypeInfo type,
which is defined somewhere (is that object.d?) Anyway. The same
would happen with the interpolated string.
Btw: Swift does this for string interpolation and it works very
well ->
https://www.hackingwithswift.com/articles/178/super-powered-string-interpolation-in-swift-5-0