On Wednesday, 25 January 2017 at 18:12:18 UTC, Jonathan M Davis wrote:
Fine, but in the vast majority of cases, you're calling .ptr, because you're going to be passing the pointer to C code, in which case, doing &arr[0] buys you very little, since the C code is inevitably going to be reading more than that one element,

In that case, calling the C function isn't going to be @safe anyway, so you might as well use .ptr.

So, telling the programmer to use &arr[0] instead of arr.ptr is just plain bizarre.

What you call bizarre is a simple, actionable explanation (which is especially important as the behaviour was necessarily a backwards-incompatible change). If &arr[0] doesn't actually apply to your code, then it was mistakenly @safe before.

 — David

Reply via email to