Gah.. bad grammar.. 1/2 baked sentences..

On Tue, 12 Jul 2011 18:00:41 +0100, Regan Heath <[email protected]> wrote:
On Tue, 12 Jul 2011 17:09:04 +0100, Steven Schveighoffer <[email protected]> wrote:
No, it wouldn't compile. char[] does not cast implicitly to char *. (if it does, that needs to change).

Replace foo with foo.ptr, it makes no difference to the point I was making.

Which was that a new D user would pass foo.ptr rather than go looking for, and find toStringz. We've had a number of cases on the learn NG in the past.

OK, but what if it's like this:

char[] foo = new char[100];
auto bar = foo;

ucase(foo);

In most cases, bar is also written to, but in some cases only foo is written to.

Granted, we're getting further out on the hypothetical limb here :) But my point is, making it require explicit calling of toStringz instead of implicit makes the code less confusing, because you understand "oh, toStringz may reallocate, so I can't expect bar to also get updated" vs. simply calling a function with a buffer.

This is not a 'new' problem introduced the idea, it's a general problem
-->                                     ^by
for D/arrays/slices and the same happens with an append, right? In which case it's not a reason against the idea.

Reply via email to