On Saturday, 30 November 2013 at 15:48:28 UTC, Nordlöw wrote:
I think I've read somewhere that string literals (`const` or `immutable`) are implicitly convertible to zero (null)-terminated strings.

AFAIR, this should work:

char[] name = "alpha".dup;
mktemp(name.ptr);

D literals are zero-terminated so toStringz is only needed if you want to pass to C function slice of literal or some runtime input.

Another option is to declare extern(C) function to take `const (char)*` argument, as far as I remember C it should not affect mangling but will allow to pass literal directly without allocating a mutable copy.

Reply via email to