On Tuesday, 24 January 2017 at 11:28:17 UTC, Atila Neves wrote:
void main() {
foo;
}
void foo() @safe {
int[] array;
auto ptr = array.ptr;
}
foo.d(7): Deprecation: array.ptr cannot be used in @safe code,
use &array[0] instead
&array[0] is incredibly ugly and feels like an unnecessary
hack, and I'm wondering why it's @safe.
Atila
Just a speculative guess.
unittest @safe
{
int[] array;
auto ptr = array.ptr; //could be null
auto ptr2 = &array[0]; //Does a bounds check?
auto ptr3 = &array[5]; //Should do a bounds check.
}