On 21.12.2015 21:20, Steven Schveighoffer wrote:
This seems like an incorrect feature then. Why wouldn't I want S to be
treated like any other const(char)*? Seems like it's explicitly saying
"treat this like a const(char)*"

To my understanding, `alias this` means "is implicitly convertible to X", and not "is the same thing as X".

That is, `is(S == const(char)*)` is false, but `is(S : const(char)*)` is true. It makes sense to me that isPointer behaves like the `==` variant.

And for sure, the `alias this` doesn't make S interchangeable with a pointer. S may have a different size, the pointer may not be at a zero offset in S, etc.

For the phobos code in question it comes down to what's less surprising, I guess. Having such an `alias this` resolved before stringification, or not. I'm not sure.

Reply via email to