On Saturday, 4 August 2018 at 12:16:00 UTC, Steven Schveighoffer wrote:
On 8/3/18 10:26 AM, Jonathan Marler wrote:
On Tuesday, 31 July 2018 at 15:07:04 UTC, Steven Schveighoffer wrote:
On 7/31/18 10:13 AM, Nicholas Wilson wrote:
[...]

Absolutely, I didn't realize this was an ambiguity. It should be the same as foo(long) vs. foo(int) with foo(1).


+1 for this

Although there is a solution for this today, i.e.

foo(cast(string)"baz");
foo("baz".ptr));

I see no reason why `string` shouldn't have precedence over `immutable(char)*`, especially since you can always explicitly choose the pointer variant with `.ptr.

Let me rewrite your solution for int vs. long:

foo(cast(int)1);
foo(1L);

You like that too? ;)

"baz" is a string, that's its primary type. That it can be used for a const(char)* is nice for legacy C code, but shouldn't get in the way of its natural type.

-Steve

Yeah I definitely agree. Though there is a solution, it's ugly. Making string have precedence over char pointers seems like only positives from what I can tell.

Reply via email to