On Tuesday, 22 July 2014 at 13:28:27 UTC, Daniel Gibson wrote:
Am 22.07.2014 11:01, schrieb Daniel Murphy:

Old D code (from the 32-bit only days) used to do this successfully:

printf("Hello %.*s\n", "segfault");

So it relied on both the length and pointer being passed. Unfortunately this was done quite a lot, so simply changing the rules so string literals get passed to C varargs as pointers would silently (and
horribly) break this code.

(isn't there a proper string type in D2?)

nope, it's just an ordinary slice (although the fact that it's a slice of char does make it a bit special w.r.t. unicode)

The compiler doesn't even know about the name string, it's just defined here:
https://github.com/D-Programming-Language/druntime/blob/master/src/object.di#L28

Reply via email to