On Monday, 2 May 2016 at 13:00:27 UTC, Erik Smith wrote:
Is there a way to initialize a static array and have it's size
inferred (and that works for arrays of structs using braced
literals)? This would make it easier to maintain longer static
array definitions. The code below doesn't work when removing
the array size even though the array is declared as static
immutable.
import std.traits;
static immutable int[] a = [1,2,3];
static assert(isStaticArray!(typeof(a))); // fails
I still like
----
auto s(T, size_t n)(T[n] arr) {
return arr;
}
auto arr = [1, 2, 3].s;
----
But of course this won't work:
----
int[] a = [1,2,3].s;
static assert(isStaticArray!(typeof(a))); // fails
----
Since 'a' is just a slice.
But this will work:
----
immutable auto a = [1,2,3].s;
----