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;
----

Reply via email to