On 03/26/2018 12:16 PM, Aedt wrote:
I'm a big fan of betterC. In C, you can initialize an array without
specifying the length like this
int ia[ ] = {0, 2, 1};
What is the translation of this?
The language doesn't have that feature. But there's a PR to add
`staticArray` to the standard library [1]. When that gets in, you can write:
import std.array;
auto ia = [0, 2, 1].staticArray; /* ia is an int[3] */
[...]
Also, is it possible to retrieve the pointer of the sequence of actual
data from std.container.array? If all fails I'd like to use this container.
Take the address of the first element:
import std.container.array: Array;
Array!int a = [1, 2, 3];
int* p = &a[0];
assert(*p == 1);
assert(*++p == 2);
assert(*++p == 3);
Be aware that the pointer potentially becomes invalid when you append to
the array.
[1] https://github.com/dlang/phobos/pull/6178