On Wednesday, 14 May 2025 at 03:36:40 UTC, Jonathan M Davis wrote:
to!string definitely deals with null-terminated strings, or it wouldn't work at all. It's not the kind of thing that would work by accident.

I don't think it's good API design:

Pointer to string conversions convert the pointer to a size_t value. If pointer is char*, treat it as C-style strings. In that case, this function is @system.

So `to!string` is bad for generic code. Want to represent the address of a byte* as hex in a string, fine. Oh now the pointer's element type is char - wait, why isn't the result hex any more?

I really dislike overloads having different behaviour like this and it would be nice if Phobos 3 could take a much stricter stance on that.

On the docs:

This special behaviour is buried as *part* of a single bullet point in long documentation that is not easy to find. (And there's currently no anchor link for that section - each 'Examples:' section should probably have one).

Reply via email to